美元符号如何在shell脚本中使用

  

美元符号如何在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脚本中使用