当前位置:网站首页>Basic series of SHEL script (II) syntax + operation + judgment
Basic series of SHEL script (II) syntax + operation + judgment
2022-07-05 07:20:00 【jiankang66】
One 、 background
Although I am a java The programmer , Do the back end , But recently, I often need to read scripts written by others to run projects , So as a back-end programmer , We also need to know shell grammar , Can read some basic shell Script .
Two 、 Introduction to script definition and execution
1、bash The script header defines the executable environment , Define the interpreter , The program specified by the following path is the program that interprets this script file Shell Program .
#!/bin/bash2、 Give script permission
chmod +x a.sh3、 perform bash Script
./a.sh4、 Check execution
bash -x zhishu.shAfter execution , Will be displayed bash The execution of the script , as follows , It is a prime number script execution process .
+ read -p Please enter a number : number
Please enter a number :33
+ '[' 33 -eq 1 ']'
+ '[' 33 -eq 2 ']'
++ seq 2 32
+ for i in '`seq 2 $[$number-1]`'
zhishu.sh: line 12: %2: syntax error: operand expected (error token is "%2")
+ echo 33 Prime number
33 Prime number 5、 Shortcut key
(1) Not insert In mode , Do the following , Copy the current row .
yyp(2) Not insert In mode , Do the following , Delete several lines below the cursor .
10d6、 Escape character ,
(1) Add... To the front \, Example , Defines a variable $0.
echo "\$0 = $0"7、 Execute commands in the script without output
ping -c1 $ip &>/dev/null3、 ... and 、read Command syntax
1、、 Prompt the user to enter
(1) It will show input your name;, The user will assign the input content to name Variable .
read -p "input your name:" name
# Print user input
echo ${$name}(2) User input is hidden ,-p The parameters entered by the user will be hidden , Console not displayed .
read -s -p "input your name:" nameFour 、 arithmetic
1、 common 4 There are two operation modes , Remember that syntax can write complex operations in scripts .
(1) The first one is
$((1+1)) (2) The second kind
$[84*1] (3) The third kind of , Space required
expr 1 + 1 # Note blank space
expr 10 \* 2 #\ For escape characters 4、 let Calculate variables
n=1;let n=n+2;echo $n # The result is 3
ln=1;let n=n**3;;echo $n # The result is 85、 ... and 、 conditional
1、 The first way ,
(1) Be careful : There should be spaces between brackets and calculated fields , Otherwise, an error will be reported
[[ ]](2) Example :
[[ ! -d ./dir ]];echo $? # Determine whether it is a directory , If yes, go back to 02、 The second way ,
(1) There should be spaces between brackets and calculated fields , Otherwise, an error will be reported
[](2) Example
[ -L ./va.sh ];echo $? # Determine whether it is a linked file , In this way, spaces are required in brackets 3、 The third way
(1) Use test command
test(2) Example :
test test -f varable.sh # Determine if it's a document
test -d dir2;echo $? # Determine if it's a directory
test varable.sh -nt a.sh;echo $? # Judge whether the previous file is newer than the following file
test a.sh -ef b.sh ;echo $? # Compare whether the two files are the same
test -z "hello world";echo $? # Determines if the string is empty 1 Not empty
test -n "hello world";echo $? # Determine whether the string is non empty 1 Not empty
test "hello"="word" ;echo $? # Determine whether two strings are equal
test 1 -eq 2;echo $? # Judge 1 and 2 Whether it is equal or not 1 Is not equal 4、 Options for judging numbers
| -eq | be equal to |
| -ne | It's not equal to |
| -gt | Greater than |
| -lt | Less than |
| -ge | Greater than or equal to |
| -le | Less than or equal to |
5、 Determine file options
| -d | Whether it is a directory |
| -f | Is it a document |
| -e | Whether there is |
| -ef | Are the two files equal |
| -w | Whether a file can be written |
| -L | Is there a linked file |
| -s | Determine whether a file is not empty |
| ! -s | Judge whether the file content is empty |
6、 String judgment options
| -z | Determines if the string is empty |
| -n | Determine whether the string is non empty |
7、 Other orders passed man test see , Yes string Comparison , Document judgment, etc
6、 ... and 、 Multi condition judgment
1、 grammar
(1) Logic and
-a perhaps &&(2) Logic or
-o perhaps ||(3) Example
# Determine whether the user is an administrator , Print the following content if the conditions are met
[ $(id -u) -eq 0 ]&& echo “ It's the administrator ” 2、if structure
(1) Grammar 1
if [ condition ];then
command
fi(2) Grammar II
if test condition ;then
command
else
command
fi(3) Grammar 3
if test condition ;then
command
elif test condition ;then
command
else test condition ;then
command
fi3、 The application case
(1) Determine whether the host is ping through
#!/bin/bash
read -p 'ping Which one? ip:' ip
# Execute commands in the script without output
ping -c1 $ip &>/dev/null
if [ $? -eq 0 ];then
echo Through the
else
echo no
fi(2) Determine whether a process exists , 0 For existence , Use ps command
#grep -v 'grep' The result does not include the current command process
ps -ef|grep clickhouse|grep -v 'grep';echo $?(3) Determine whether a process exists , 0 For existence , Use pgrep command
# Determine if a process exists
pgrep clickhouse &>/dev/null
test $? -eq 0 && echo " At present clickhouse The process exists " || echo " The current process does not exist "(4) Determine whether a user exists
read -p " Please enter a user :" username
id $username &>/dev/null
if test $? -eq 0;then
echo "$username Users exist "
else
echo "$username The user doesn't exist "
fi7、 ... and 、 summary
The above is about shell Grammar variables , operation , Judge all relevant contents , Hopefully that helped , You can refer to it , If you think it's good , Welcome to wechat search java Basic notes , Relevant knowledge will be continuously updated later , Make progress together .
边栏推荐
- [node] differences among NPM, yarn and pnpm
- The difference between new and malloc
- Inftnews | drink tea and send virtual stocks? Analysis of Naixue's tea "coin issuance"
- (top) pretty girl binary color code portal
- Oracle code use
- Ros2 - configuration development environment (V)
- Simple operation with independent keys (hey, a little fancy) (keil5)
- Negative number storage and type conversion in programs
- 能量守恒和打造能量缺口
- Database SQL practice 3. Find the current salary details of the current leaders of each department and their corresponding department number Dept_ no
猜你喜欢

玩转gRPC—深入概念与原理

Special training of C language array

Ros2 - configuration development environment (V)

PHY drive commissioning --- mdio/mdc interface Clause 22 and 45 (I)

三体目标管理笔记

And play the little chestnut of dynamic agent

Using GEE plug-in in QGIS

The problem of configuring opencv in qt5.13.2 is solved in detail

1290_FreeRTOS中prvTaskIsTaskSuspended()接口实现分析

PowerManagerService(一)— 初始化
随机推荐
(tool use) how to make the system automatically match and associate to database fields by importing MySQL from idea and writing SQL statements
Import CV2, prompt importerror: libcblas so. 3: cannot open shared object file: No such file or directory
Mid 2022 documentary -- the experience of an ordinary person
[node] NVM version management tool
[framework] multi learner
DataGrid offline installation of database driver
R language learning notes 1
Ros2 - function package (VI)
An article was opened to test the real situation of outsourcing companies
PowerManagerService(一)— 初始化
[idea] efficient plug-in save actions to improve your work efficiency
window navicat连接阿里云服务器mysql步骤及常见问题
Today, share the wonderful and beautiful theme of idea + website address
Qu'est - ce que l'hydroxyde de sodium?
Literacy Ethernet MII interface types Daquan MII, RMII, smii, gmii, rgmii, sgmii, XGMII, XAUI, rxaui
Course learning accumulation ppt
And let's play dynamic proxy (extreme depth version)
【软件测试】05 -- 软件测试的原则
并发编程 — 如何中断/停止一个运行中的线程?
Ethtool principle introduction and troubleshooting ideas for network card packet loss (with ethtool source code download)