首页 > 系统相关 >shell3

shell3

时间:2024-12-20 20:59:29浏览次数:8  
标签:脚本 shell3 echo 传递 sh 参数 字符串

向脚本程序传递参数如何实现
创建一个脚本,名字为1.sh,脚本内容如下

echo 执行的文件名是:$0
echo 第一个参数是:$1
echo 传递的参数作为一个字符串显示:$*
echo 传递的参数独立作为每个字符串显示:$@
echo 传递到脚本的参数个数是:$#
echo 最后命令的退出状态:$?
echo 脚本运行的当前进程ID是:$$

可以向脚本程序传递一个或者多个参数,脚本中的$1,里面的数字是可以依次递增的,比如$1,$2,$3等等,其中的$0(比较特殊表示文件名称)

我们利用vim写入脚本9.sh,再利用sh 9.sh执行文件,我们看看执行结果
image.png

执行的文件名是:1.sh
第一个参数是:
传递的参数作为一个字符串显示:
传递的参数独立作为每个字符串显示:
传递到脚本的参数个数是:0
最后命令的退出状态:0(*意思就是正常没有报错

脚本运行的当前进程ID是:17620

上面显示第一个参数为空,因为我们没有给它指定任何一个参数,我们给他指定一个参数name

sh 1.sh name

image.png
执行的文件名是: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是:$$

image.png

由此得出参数传递一般为$(n表示数字可递增)
$*就是将参数当作统一的字符串显示出来
而$@是将每个字符串当作独立的字符串显示这也是$*和$@的区别,$#代表参数的个数
$?是查看命令执行状态的如果显示为0那么命令就是正常执行的,其他数字就是出错了
$$就是查看脚本当前进程id的

如何在shell编程中进行数学运算?
shell编程在数学运算的时候是相当麻烦的,python中的数学运算可能很简单在shelI:编程中利用expr进行运算
expr5+10回显5+10那么该怎么运算呢expr5+10这样写就行了5(空格)+ (空格)10

以上方法适用于加法减法,如果用乘法就会报错expr 6 \* 6(乘法是用\*python直接*就行了要用\进行转义)

那么如果是除法就有两种方法一种是/取整数%取余数,他不用转义
image.png

混合计算以及变量为计算值

注意num=` expr 5 + 10 `这里是反引号

image.png

标签:脚本,shell3,echo,传递,sh,参数,字符串
From: https://blog.csdn.net/qq_73187469/article/details/144497612

相关文章

  • 【牛客编程题】shell34题(Linux awk,grep命令)
    【牛客编程题】shell34题(Linuxawk,grep命令)SHELL01-22:基本文本处理SHELL23-28:nginx日志分析SHELL29-32:netstat练习做题链接:https://www.nowcoder.com/exam/oj?page=1&tab=SHELL%E7%AF%87&topicId=195参考资料:https://github.com/jaywcjlove/linux-command文章目录从awk命令开始对......