美元符号如何在shell脚本中使用?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。
,,关于美元符号,大家肯定都不陌生,在shell脚本中,美元的作用还是比较大多的,这里将所有的元组合都列出来,大家可以看下效果。
,,美元组成的命令大概有下面几个:
<代码> 0美元,1美元…美元,# 63;美元!,$ $,$ * $ # $ @ 代码>
下面分别看看这些意思是什么:
<强> 1。$ 0 $ 1 强>
0和1美元比较好理解,他们的意思,分别是脚本名称和脚本的第一个参数,我们举个例子来看:
jwfyyzdembp: tmp jwfyyz猫test.sh美元 回声& # 39;0美元的含义是& # 39;:$ 0 回声& # 39;1美元的含义是& # 39;:1美元 jwfyyzdembp: tmp jwfyyz。美元/测试。sh yeyz 0美元的含义是:。/test.sh 1美元的含义是:yeyz jwfyyzdembp: tmp jwfyyz $ sh测试。sh yeyz 0美元的含义是:test.sh 1美元的含义是:yeyz
,,需要注意一点,当使用。/test.sh的方法来运行脚本的时候,$ 0的值是。/test.sh,而不是test.sh
<强> 2。美元,# 63;强>
美元,# 63;指的是最后运行的命令的执行返回码,执行成功,则返回0,否则返回1,举例如下:
jwfyyzdembp: tmp jwfyyz猫test.sh美元 回声& # 39;0美元的含义是& # 39;:$ 0 回声& # 39;1美元的含义是& # 39;:1美元 ls - l a.txt 回声& # 39;美元,# 63;的结果是& # 39;美元,# 63; ls - l test.sh 回声& # 39;美元,# 63;的结果是& # 39;美元,# 63; jwfyyzdembp: tmp jwfyyz $ sh测试。sh yeyz 0美元的含义是:test.sh 1美元的含义是:yeyz ls:。txt:没有这样的文件或目录 美元,# 63;的结果是1 7 32 test.sh -rwxr-xr-x jwfyyz轮124 2 美元,# 63;的结果是0
,,可以看到第,一次运行ls - l a.txt的时候,由于我们的目录中没有a.txt这个文件,所以返回是1,第二次由于test.sh文件是存在的,所以返回的结果是0
<强> 3。$ $ 强>
,$ $指的是脚本运行的当前进行id号,举例如下:
jwfyyzdembp: tmp jwfyyz猫test.sh美元 松材线虫病 echo $ $ 睡眠10 jwfyyzdembp: tmp jwfyyz $ sh测试。上海, [1]60658 jwfyyzdembp: tmp jwfyyz $ p ef | grep测试 501 60658 60529 0 36下午ttys000 0:00.01 sh test.sh 501 60661 60529 0 36下午ttys000 0:00.00 grep测试
,,我们在测试。sh脚本后面设置了睡眠10的命令,脚本运行完会睡眠10年代,脚本中打印出来了60658年值,此时我们查看当前脚本的进程号,发现子进程的进程id是60658
<强> 4。$ *和$ @ 强>
,这两个放在一起,主要是因为他们都代表引用的所有参数,单独打印出来结果,都是一样的,但是循环打印他们的内容,则会看出区别,举例如下:
jwfyyzdembp: tmp jwfyyz猫test.sh美元 回声& # 39;$ *的结果是& # 39;:$ * 回声& # 39;$ @的结果是& # 39;:$ @ 回声“——\ $ *演示——产生绯闻; 因为我在“$ *“;做 echo $我 完成 回声“——\ $ @演示——产生绯闻; 因为我在“@"美元;;做 echo $我 完成 jwfyyzdembp: tmp jwfyyz $ sh测试。sh yeyz 1 2 3 $ *的结果是:yeyz 1 2 3 $ @的结果是:yeyz 1 2 3 - $ *演示- - - - - - yeyz 1 2 3 - $ @演示- - - - - - yeyz 1 2 3
,,可以看的到,循环打印的时候,@ 美元;
<强> 5。$ # 强>
,$ #容易理解,它的意思是参数的个。举数例:
jwfyyzdembp: tmp jwfyyz猫test.sh美元 回声& # 39;$ *的结果是& # 39;:$ * 回声& # 39;$ @的结果是& # 39;:$ @ 回声& # 39;$ #的结果是& # 39;:$ # jwfyyzdembp: tmp jwfyyz $ sh测试。sh yeyz 1 2 3 $ *的结果是:yeyz 1 2 3 $ @的结果是:yeyz 1 2 3 $ #的结果是:4
<强> 6。美元! 强>
,该命令是显示shell脚本中上一个后台执行命令的进程id号,如下:
jwfyyzdembp: tmp jwfyyz猫test.sh美元 回声& # 39;$ *的结果是& # 39;:$ * 回声& # 39;$ @的结果是& # 39;:$ @ 回声& # 39;$ #的结果是& # 39;:$ # 睡眠10, 回声& # 39;美元!的结果是& # 39;:$ ! 睡眠10 jwfyyzdembp: tmp jwfyyz $ sh测试。sh yeyz 1 2 3, [1]61237 $ *的结果是:yeyz 1 2 3 $ @的结果是:yeyz 1 2 3 $ #的结果是:4 美元!的结果是:61238 jwfyyzdembp: tmp jwfyyz $ p ef | grep睡眠 501 61238 61237 0 9:12下午ttys000 0:00.00睡眠10 501 61239 61237 0 9:12下午ttys000 0:00.00睡眠10 501 61241 60529 0 9:12下午ttys000 0:00.00 grep睡眠美元符号如何在shell脚本中使用