bash 脚本编程三 变量组成命令与大括号


在sh脚本文件中,我们可以直接运行Linux命令,比如:

  1. #!/bin/bash  
  2. mkdir ~/x  
  3. touch ~/x/m  
  4. ls ~/x -alh  
输出结果是:
  1. $ ./test.sh  
  2. total 8.0K  
  3. drwxrwxr-x  2 chenshu chenshu 4.0K Sep 13 10:49 .  
  4. drwxr-xr-x 64 chenshu chenshu 4.0K Sep 13 10:49 ..  
  5. -rw-rw-r--  1 chenshu chenshu    0 Sep 13 10:49 m  
可以用变量来替换mkdir,touch和ls。
  1. #!/bin/bash  
  2. MKDIR=mkdir  
  3. TOUCH=touch  
  4. LS=ls  
  5.   
  6. $MKDIR ~/x  
  7. $TOUCH ~/x/m  
  8. $LS ~/x -alh  

如果将自己的变量值和后面其他字符串拼接起来,要小心的用{}将变量名包起来。如果不用{},可能会出现意外:

  1. #!/bin/bash  
  2. NAME=freebird  
  3. echo "$NAME_esri"  
期望显示freebird_esri,结果显示的是空

修改一下:

  1. #!/bin/bash  
  2. NAME=freebird  
  3. echo "${NAME}_esri"  
输出为:
  1. $ ./test.sh  
  2. freebird_esri  

相关内容