linux-Befehl sh ist der Befehl zum Ausführen der Shell unter Linux und der Interpreter der Shell. Das Shell-Skript ist die Shell- und Befehlszeilenschnittstelle in Linux verschiedene Aufgaben ausführen.
Was bedeutet der Linux-Befehl sh?
notwendig ist, um das Shell-Programm strenger zu machen .
nicht erforderlich, Variablen zu deklarieren. Um einer Variablen einen Wert zuzuweisen, können Sie so schreiben:
#!/bin/sh #对变量赋值: a=”hello world”# 现在打印变量a的内容: echo “A is:” echo $a
num=2 echo “this is the $numnd”
num=2 echo “this is the ${num}nd”
echo "some text" #将文字内容打印在屏幕上 ls #文件列表 cp sourcefile destfile #文件拷贝 mv oldname newname #重命名文件或移动文件 rm file #删除文件 grep 'pattern' file #在文件内搜索字符串,如:grep 'searchstring' file.txt cat file.txt #输出文件内容到标准输出设备(屏幕)上 read var #显示用户输入,并将输入赋值给变量
Konzept: Pipe, Redirect und Backtick (Backslash)
grep "hello" file.txt | wc -l
{}
und {}
Externe Zuweisung), wie zum Beispiel der folgende Befehl: #!/bin/shecho 1 2 3 | { read a b c ; echo $a $b $c ; } # 打印结果为: 1 2 3echo $a $b $c # 打印结果为空
|
将一个命令的输出作为另外一个命令的输入。find . -mtime -1 -type f -print
上述代码表示为:在 file.txt 中搜索包含有 “hello” 的行并计算其行数。在这里grep命令的输出作为wc命令的输入。
需要注意的是,管道后的命令是子命令,并不会出现在接下来的命令中(有点像C++在{}
内和{}
外赋值的区别),如以下命令:
#!/bin/sh # The ticks are backticks (`) not normal quotes (‘): tar -zcvf lastmod.tar.gz `find . -mtime -1 -type f -print`
重定向
:将命令的结果输出到文件,而不是标准输出(屏幕)。
>写入文件并覆盖旧文件
>>追加到文件的尾部,保留旧文件内容。
反短横线 “`”:使用反短横线可以将一个命令的输出作为另一个命令的一个命令行参数。
if ….; then …. elif ….; then …. else …. fi #注意是以fi结尾
上述语句用来查找过去24小时(-mtime -2则表示过去48小时)内修改过的文件。如果想将所有查找到的文件打一个包,则可以使用一下linux脚本:
# expression 1# while循环:当expresssion成立的时候,执行cmdwhile (expresssion)do cmddone# expression 2,可以直接使用truewhile true(或 :)do cmddone
ifif
表达式,如果条件为真则执行 then
后面的部分:
# 寻找 ${path} 路径下唯一首字母为‘E’的子目录,并 cd 到该目录find ${path}/E* -type d | while read corresp_pathdo cd ${corresp_path}done
大多数情况下,可以使用测试命令来对条件进行测试。比如可以比较字符串、判断文件时都存在以及是否可读等等…
whilewhile
Redirect
: Leiten Sie den Befehl um. Ergebnisse werden ausgegeben in eine Datei statt in die Standardausgabe (den Bildschirm).
überschreiben Sie die
alte Datei. >> Hängen Sie an das Ende der Datei an und behalten Sie die alte Datei bei Inhalt.
Anti-Bindestrich"`": Verwenden Sie Anti-Bindestrich, um
für einen anderen Befehl.
[ -f "somefile" ] #判断文件是否存在 [ -d "testResults/" ] #判断目录testResults/是否存在 [ -x "/bin/ls" ] #判断/bin/ls文件是否存在并有可执行权限 [ -n "$var" ] #判断$var变量是否有值 [ "$a" = "$b" ] #判断$a和$b是否相等
[ -f "/etc/shadow" ] && echo “This computer uses shadow passwors”
Process Control #🎜 🎜#if
if
Ausdruck, wenn die Bedingung wahr ist, führen Sie den Teil nach then
aus: #!/bin/sh
mailfolder=/var/spool/mail/james [ -r "$mailfolder" ]‘ ‘{ echo “Can not read $mailfolder” ; exit 1; } #感觉这里的‘’应该是||
echo “$mailfolder has mail from:” grep “^From ” $mailfolder
Die Syntaxstruktur der while
-Schleife lautet:
#!/bin/sh mailfolder=/var/spool/mail/james [ -r "$mailfolder" ]‘ ‘{ echo “Can not read $mailfolder” ; exit 1; } #感觉这里的‘’应该是|| echo “$mailfolder has mail from:” grep “^From ” $mailfolder
该脚本首先判断mailfolder是否可读。如果可读则打印该文件中的”From” 一行。如果不可读则或操作生效,打印错误信息后脚本退出。这里有个问题,那就是我们必须有两个命令:
◆打印错误信息
◆退出程序
我们使用花括号以匿名函数的形式将两个命令放到一起作为一个命令使用。一般函数将在下文提及。
不用‘与’和‘或’操作符,我们也可以用if表达式作任何事情,但是使用与或操作符会更便利很多。
推荐学习:《linux视频教程》
Das obige ist der detaillierte Inhalt vonWas bedeutet der Linux-Befehl sh?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!