首页 > 代码库 > Shell 编程基础之注意技巧

Shell 编程基础之注意技巧

  • 退出状态
    bash中的内建命令虽然不创建新的进程,但也会有Exit Status,通常也用0表示成功非零表示失败,虽然内建命令不创建新的进程,但执行结束后也会有一个状态码,也可以用特殊变量$?读出
  • 命令代换:`或$()
    user@ae01:~$ echo `date`Sat Oct 25 19:17:58 CST 2014user@ae01:~$user@ae01:~$ echo $(date)Sat Oct 25 19:18:16 CST 2014user@ae01:~$
  • 算术代换:$(())
    user@ae01:~$ echo $((1+1))2
    user@ae01:~$ i=1user@ae01:~$ echo $(($i+1))2user@ae01:~$ echo $((i+1))2
  • 单引号
    Shell脚本中的单引号和双引号一样都是字符串的界定符,而不是字符的界定符。单引号用于保持引号内所有字符的字面值,即使引号内的\和回车也不例外,但是字符串中不能出现单引号。如果引号没有配对就输入回车,Shell会给出续行提示符,要求用户把引号配上对。例如:
    user@ae01:~$ echo hello word> hello worduser@ae01:~$
    user@ae01:~$ echo hello \> wordhello worduser@ae01:~$
  • 双引号
    双引号用于保持引号内所有字符的字面值(回车也不例外),但以下情况除外:
    • $加变量名可以取变量的值
    • 反引号仍表示命令替换
    • \$表示$的字面值
    • \`表示`的字面值
    • \"表示"的字面值
    • \\表示\的字面值
  • user@ae01:~$ echo $HOME/home/useruser@ae01:~$ echo "`date`"Sat Oct 25 19:31:46 CST 2014user@ae01:~$ echo "I‘d say: \"Go for it\""Id say: "Go for it"user@ae01:~$ echo "\"> ""user@ae01:~$ echo "\\"user@ae01:~$

Shell 编程基础之注意技巧