控制字符
常见的控制字符有:&
,&&
,||
,;
,|
&
: 将命令在后台执行&&
: 前面的命令执行成功,后面的命令才会执行||
: 前面的命令执行失败,后面的命令才会执行;
:命令顺序执行,前面的命令执行成功与否,后面的命令都会执行|
:管道符,前面命令的执行结果是后面命令的输入
实例
将命令在后台执行,可通过 jobs
命令查看当前后台执行的命令
1 | java -jar Test & |
当test.txt存在时,查看该文件,只有ls test.txt执行成功后,才会执行 后面的 cat test.txt
1 | ls test.txt && cat test.txt |
如果有gedit编辑器则打开该程序,否则打开vim编辑器
1 | gedit || vim |
命令依次执行,无论前面命令是否执行成功,后面的命令都会执行
1 | ls /tmp ; ls /root ; ls /home |
查看test.txt文件,并屏蔽其输出(扔到了 /dev/null黑洞里),如果前面命令执行成功,说明文件存在,则打印出文件存在,如果执行失败,说明文件不存在,则打印文件不存在
1 | cat test.txt > /dev/null && echo "文件存在" || echo "文件不存在" |
输出当前进程中有bash
关键字的进程,前面ps -a
的输出结果,是 grep bash
的输入参数
1 | ps -a | grep bash |
参数变量
$@
所有参数列表,与$*
效果相同$$
Shell本身的PID$0
: Shell本身的文件名$1~n
参数值,$1为第一个参数,$2为第二个参数。。。
实例
1 |
|
将其保存为 test.sh
,执行
1 | bash Test.sh 1 2 |
输出结果
1 | shell脚本本身的名字: test.sh |
常用脚本demo
函数声明一定要在函数调用前面,不然会找不到,切记,和高级语言不一样!
1 |
|
使用
1 | ./build.sh stop docker |
echo输出彩色字
1 | echo -e "\033[30m 黑色字 \033[0m" |