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]
  • 相关阅读:
    python3 连接HBase
    xgb 绘制
    手机UA识别
    meta常用标签总结
    window.requestAnimationFrame() ,做逐帧动画,你值得拥有
    三年从前端小工到架构-知乎 Live 学习整理
    SEO配置信息操作文档
    函数常见的写法及调用方法整理
    电脑中‘落雪’木马病毒如何解决
    Nuxt学习笔记
  • 原文地址:https://www.cnblogs.com/tannerBG/p/4054366.html
Copyright © 2011-2022 走看看