向脚本程序传递参数如何实现
创建一个脚本,名字为1.sh,脚本内容如下
echo 执行的文件名是:$0
echo 第一个参数是:$1
echo 传递的参数作为一个字符串显示:$*
echo 传递的参数独立作为每个字符串显示:$@
echo 传递到脚本的参数个数是:$#
echo 最后命令的退出状态:$?
echo 脚本运行的当前进程ID是:$$
可以向脚本程序传递一个或者多个参数,脚本中的$1,里面的数字是可以依次递增的,比如$1,$2,$3等等,其中的$0(比较特殊表示文件名称)
我们利用vim写入脚本9.sh,再利用sh 9.sh执行文件,我们看看执行结果
执行的文件名是:1.sh
第一个参数是:
传递的参数作为一个字符串显示:
传递的参数独立作为每个字符串显示:
传递到脚本的参数个数是:0
最后命令的退出状态:0(*意思就是正常没有报错
)
脚本运行的当前进程ID是:17620
上面显示第一个参数为空,因为我们没有给它指定任何一个参数,我们给他指定一个参数name
sh 1.sh name
执行的文件名是:1.sh
第一个参数是:name
传递的参数作为一个字符串显示:name
传递的参数独立作为每个字符串显示:name
传递到脚本的参数个数是:1
最后命令的退出状态:0
脚本运行的当前进程ID是:20093
然后第一个参数就为name
那么假设我们加入第二个,第三个参数,修改脚本
vim 1.sh
指定参数名分别为sh 1.sh 1 2 3
把1.sh变成
echo 执行的文件名是:$0
echo 第一个参数是:$1
echo 第一个参数是:$2
echo 第一个参数是:$3
echo 传递的参数作为一个字符串显示:$*
echo 传递的参数独立作为每个字符串显示:$@
echo 传递到脚本的参数个数是:$#
echo 最后命令的退出状态:$?
echo 脚本运行的当前进程ID是:$$
由此得出参数传递一般为$(n表示数字可递增)
$*就是将参数当作统一的字符串显示出来
而$@是将每个字符串当作独立的字符串显示这也是$*和$@的区别,$#代表参数的个数
$?是查看命令执行状态的如果显示为0那么命令就是正常执行的,其他数字就是出错了
$$就是查看脚本当前进程id的
如何在shell编程中进行数学运算?
shell编程在数学运算的时候是相当麻烦的,python中的数学运算可能很简单在shelI:编程中利用expr进行运算
expr5+10回显5+10那么该怎么运算呢expr5+10这样写就行了5(空格)+ (空格)10
以上方法适用于加法减法,如果用乘法就会报错expr 6 \* 6(乘法是用\*python直接*就行了要用\进行转义)
那么如果是除法就有两种方法一种是/取整数%取余数,他不用转义
混合计算以及变量为计算值
注意num=` expr 5 + 10 `这里是反引号
标签:脚本,shell3,echo,传递,sh,参数,字符串
From: https://blog.csdn.net/qq_73187469/article/details/144497612