想说点什么呢?
之前一直没有深入学习Linux shell脚本的编写,现如今越来越对Linux shell产生依赖,所以说要开始学习了,希望在之后的日子里,要坚持不懈的对技术进行钻研,希望五年之后,还能常常回顾现如今写的博客
脚本常见变量
变量肯定是学脚本第一个要学的东西,脚本中一些默认的变量我们是需要了解的
| 名称 | 含义 |
|---|---|
| $0 | 获取shell脚本文件名,以及脚本路径 |
| $n | 获取shell脚本的第n个参数,n在1~9之间,如大于9则需要写,$[10] |
| $# | 获取执行的shell脚本后面的参数的总个数 |
| $* | 获取shell脚本所有参数,不加引号等同于$@作用,加上引号“$*”作用是接收所有参数为单个字符串,“$1 $2 $3” |
| $@ | 不加引号,效果同上,加引号,是接收所有参数为独立字符串。如"$1" “$2” “$3” … |
特殊状态变量
| 名称 | 含义 |
|---|---|
| $? | 上一次命令执行状态返回值,0正确,非0失败 |
| $$ | 当时shell脚本的进程号 |
| $! | 上一次后台进程的PID |
| $_ | 在此之前执行的命令,最后一个参数 |
第一个脚本
该脚本主要是判断命令是否成功执行
#!/bin/bash
eval $@ #eval可以执行变量本身的命令
if [ $? -eq 0 ]; #判断命令执行成功与否,返回0就是成功,返回非0就是失败
then
echo "$CMD executed successfully"
else
echo "$CMD terminated unsuccessfully"
fi
[root@localhost opt]# ./success_test.sh 'ls'
rh success_test.sh test1.sh upload ZGQcPxHeQyum8QJt-wxZ4g
executed successfully
将一个命令的输出发送给另一个命令
Linux shell 脚本最棒的特性之一就是可以轻松地将多个命令组合起来生成输出
命令输入通常来自于 stdin 或参数,输出可以发送给 stdout 或 stderr,当我们组合多个命令时,通常将 stdin 用于输入,stdout 用于输出
$ cmd1|cmd2|cmd3
这里组合三个命令。cmd1的输出传递给cmd2,cmd2的传出传递给cmd3,最终的输出(来自cmd3)会出现在显示器中或被导入某个文件
本文介绍了Linux Shell脚本的基础知识,包括变量使用如$0、$@、$#等,以及特殊状态变量$?、$$等。通过一个示例脚本来演示如何检查命令执行的成功状态,并探讨了如何将命令输出传递给其他命令。文章还强调了Shell脚本在组合命令和处理输出方面的灵活性。
1万+

被折叠的 条评论
为什么被折叠?



