zoukankan      html  css  js  c++  java
  • Shell 编程基础之注意技巧

    • 退出状态
      bash中的内建命令虽然不创建新的进程,但也会有Exit Status,通常也用0表示成功非零表示失败,可以用特殊变量$?读出
    • 命令代换:`或$()
      user@ae01:~$ echo `date`
      Sat Oct 25 19:17:58 CST 2014
      user@ae01:~$
      
      user@ae01:~$ echo $(date)
      Sat Oct 25 19:18:16 CST 2014
      user@ae01:~$
    • 算术代换:$(())
      user@ae01:~$ echo $((1+1))
      2
      user@ae01:~$ i=1
      user@ae01:~$ echo $(($i+1))
      2
      
      user@ae01:~$ echo $((i+1))
      2
    • 单引号
      Shell脚本中的单引号和双引号一样都是字符串的界定符,而不是字符的界定符。单引号用于保持引号内所有字符的字面值,即使引号内的和回车也不例外,但是字符串中不能出现单引号。如果引号没有配对就输入回车,Shell会给出续行提示符,要求用户把引号配上对。例如:
      user@ae01:~$ echo 'hello word
      > '
      hello word
      
      user@ae01:~$
      user@ae01:~$ echo 'hello 
      > word'
      hello 
      word
      user@ae01:~$
    • 双引号
      双引号用于保持引号内所有字符的字面值(回车也不例外),但以下情况除外:
      • $加变量名可以取变量的值
      • ``仍表示命令替换
      • $ 表示$的字面值
      • \` 表示`的字面值
      • " 表示"的字面值
      • \ 表示的字面值
    • user@ae01:~$ echo $HOME
      /home/user
      user@ae01:~$ echo "`date`"
      Sat Oct 25 19:31:46 CST 2014
      user@ae01:~$ echo "I'd say: "Go for it""
      I'd say: "Go for it"
      user@ae01:~$ echo ""
      > "
      "
      
      user@ae01:~$ echo "\"
      
      user@ae01:~$
    • bash 参数
      • $0 代表脚本在执行时的自身文件名;像上面执行时用的是相对路径,即显示执行时的$0为"./Parameter";若执行时用绝对路径“/home/kashu/Parameter”,则$0就会显示为“/home/kashu/Parameter”
      • $# 代表所有参数的总数量
      • $@ 代表 "$1","$2", "$3", "$4" 等等,即代表每个独立的变量参数,$1 代表第一个变量参数, $2 代表第二个变量参数
    • echo "$# parameters";
      
      echo -e \nUsing '$*';
              for p in $*;
              do
                      echo "[$p]";
              done;
              
      echo -e \nUsing '"$*"';
              for p in "$*";
              do
                      echo "[$p]";
              done;
      
      echo -e \nUsing '$@';
              for p in $@;
              do
                      echo "[$p]";
              done;
      
      echo -e \nUsing '"$@"';
              for p in "$@";
              do
                      echo "[$p]";
              done
      user@ae01:~$ ./test.sh 1 "2 3"
      2 parameters
      
      Using $*
      [1]
      [2]
      [3]
      
      Using "$*"
      [1 2 3]
      
      Using $@
      [1]
      [2]
      [3]
      
      Using "$@"
      [1]
      [2 3]
  • 相关阅读:
    JS正则与PHP正则
    关于微信扫码支付的流程
    Jquery快速入门
    phpstorm快捷键大全
    CentOS 7.3 下部署基于 Node.js的微信小程序商城
    一个故事告诉你比特币的原理及运作机制 (转 2013)
    mysql The used table type doesn’t support FULLTEXT indexes 解决方案 (phpstudy 会出现),coten不会
    linux下使用 du查看某个文件或目录占用磁盘空间的大小
    ◆织梦内容管理系统模板标签代码参考
    Linux 下挂载新硬盘方法(转)
  • 原文地址:https://www.cnblogs.com/tannerBG/p/4054366.html
Copyright © 2011-2022 走看看