首頁  >  文章  >  運維  >  你應該知道的Shell 腳本的經典十三問

你應該知道的Shell 腳本的經典十三問

Linux中文社区
Linux中文社区轉載
2023-08-03 14:50:011276瀏覽

你應該知道的Shell 腳本的經典十三問

    • 經典的Shell十三問
    • #1. 為何叫做shell?

    • 2 . Shell prompt(PS1)與Carriage Return(CR)的關係?

    • #3. 別人echo, 你也echo, 是問echo知多少?

    • #4. ""(雙引號)與(單引號)有什麼差別?

    • #5. var=value? export前後差在哪?

    • 6. exec跟source差在哪?

      ######7. ( ) 與 { } 差在哪? ###
    • 8. () 還有${} 差在哪?

    • 9. 

    • * 差別在哪?

    • 10. && 與 || 差在哪裡?

      ######11. > 與 3089f4666c27f133196b8490e0f81a4c 与 c01b8772d0f6397290d6d9199e3ce834 来改变送出的数据信道(stdout, stderr),使之输出到指定的档案。
      ls my.file no.such.file 1> file.out 2>file.err
      # 2>&1 就是将stderr并进stdout做输出
      ls my.file no.such.file 1> file.out 2>&1
      # /dev/null 空
      ls my.file no.such.file >/dev/null 2>&1
      
      cat < file > file
      # 在 IO Redirection 中,stdout 与 stderr 的管道会先准备好,才会从 stdin 读进资料。 
      # 也就是说,在上例中,> file 会先将 file 清空,然后才读进 < file , 
      # 但这时候档案已经被清空了,因此就变成读不进任何数据了

      12. 你要if还是case呢?

      # if
      echo -n "Do you want to continue?(Yes/No):"
      read YN
      if [ "$YN"=Y -o "$YN"=y -o "$YN"="Yes" -o "$YN"="yes" -o "$YN"="YES"];then
      echo "continue"
      else
      exit 0
      fi
      
      # case
      echo -n "Do you want to continue?(Yes/No):"
      read YN
      case "$YN" in
      [Yy]|[Yy][Ee][Ss])
      echo "continue"
      ;;
      *)
      exit 0
      esac

      13. for what? while与until差在哪?

      # for
      for ((i=1;i<=10;i++))
      do
       echo "num is $i"
      done
      
      # while
      num=1
      while [ "$num" -le 10 ]; do
       echo "num is $num"
       num=$(($num + 1))
      done
      
      # until
      num=1
      until [ "$num" -gt 10 ]; do
       echo "num is $num"
       num=$(($nu + 1))
      done
      • break 是结束 loop
      • return 是结束 function
      • exit 是结束 script/shell

以上是你應該知道的Shell 腳本的經典十三問的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文轉載於:Linux中文社区。如有侵權,請聯絡admin@php.cn刪除