逻辑符号";" "&&“ ”||“
1) command1 ; command2
2) command1 && command2
3) command1 || command2
- 使用”;”时,顺序关系:不管command1是否执行成功都会执行command2;
- 使用”&&”时,条件关系if-so:只有command1执行成功后,command2才会执行,否则command2不执行;
- 使用”||”时,选择关系if-else:command1执行成功后command2 不执行,否则去执行command2.
$( )
与` `
(反引号)
都是用来作命令替换,重组命令行的。命令替换与变量替换差不多,先完成引号里的命令行,然后将其结果替换出来,再重组成新的命令行。
"$0"
在shell 脚本中$0 显示脚本的路径名称。
使用$0后
1 2 3 4 5 |
|
执行脚本:bash /root/shell/test5.sh
结果显示:the zero parameter is set to:/root/shell/test5.sh ##显示了脚本的执行路径
"basename"
在shell 脚本中basename 是去除目录后剩下的名字。
使用basename 后
1 2 3 4 |
|
执行脚本:bash /root/shell/test5b.sh
结果显示:the zero parameter is set to:test5b.sh ##直接显示脚本名称
dirname
dirname命令可以取给定路径的目录部分,如果给定的参数本身为一个目录,那就取当前目前的上一层目录。这个命令很少直接在shell命令行中使用,一般把它用在shell脚本中,用于取得脚本文件所在目录,然后将当前目录切换过去。
1、命令行使用 例子:
$dirname /usr/bin/sort/
结果显示:/usr/bin
2、在脚本中使用方式
当无法确定当前所在目录时,可以使用以下方式:
#!/bin/sh
DIR=$(cd $(dirname $0) && pwd)
表示的意思是将当前目录赋给DIR,并显示出当前路径
$1 $2 $n
$1是传递给该shell脚本的第一个参数
$2是传递给该shell脚本的第二个参数
echo Shell echo命令 | 菜鸟教程
bash中 2>&1 & 的解释:bash中 2>&1 & 的解释_在bash中 在一条命令后加入1> &2的作用-CSDN博客
$#
传递给脚本的命令行参数的数量
$* $@
$* 所有的位置参数。都被看作为一个单词( $* 以标量字符串的形式来存储位置参数)。 “$*” 必须被引用起来.
$@ ,其与 $* 相同, 所有的位置参数。
不同:每个参数都是一个独立的引用字符串
注:(1)参数是被完整传递的, 并没有被解释或扩展. (2) 参数列表中每个参数都被看作为单独的单词。($@ 以类似于数组的形式来存储位置参数)
注意: “$@” 应该被引用起来.
注:$@与$*中的参数只有在被双引号引用起来的时候才会不同.
$FUNCNAME
当前函数名称名称