bash shell的內建命令

內建命令是在當前bash下執行的,會對當前環境和subshell產生影響,而不是內建命令,bash會fork一個subshell來執行,爲何要內建命令,由於bash的subshell不會對父shell產生影響,這樣形成的結果是如cd命令,若是執行cd命令是在bash的subshell中執行,那麼,並不會改變父shell的目錄,這就不能完成切換目錄的目的了。shell

你也能夠使用enable命令打開或者關閉內建命令,內建命令總共有50多個,比較經常使用的有source . read mapfile和readarray(一個命令的兩種寫法,功能是將一個文本直接變成一個數組,每行做爲數組的一個元素) echo printf jobs sleep fg bg disown(使一個jobs做業控制進程脫離jobs的控制,成爲一個「野」進程) trap suspend exit exec logout wait數組

命令行參數的處理getopts,實現如-a、-b、-c n的功能,e:表示這個參數後面是有變量值的,後面的變量用$OPTARG獲取。bash

#!/bin/bash

while getopts "abc:de:f" arg
do
  case $arg in
    a)
    echo "aaaaaaaaaaaaaaaaaaaaaa"
    ;;
    b)
    echo "bbbbbbbbbbbb"
    ;;
    c)
    echo "c:arg:$OPTARG"
    ;;
    d)
    echo "ddddddddddddddd"
    ;;
    e)
    echo "e:arg:$OPTARG"
    ;;
    f)
    echo "fffffffffffffffffffffff"
    ;;
    ?)
    echo "$arg:no this arguments!!!"
 esac
done

還有如alias、unalias、cd、declare、typeset、dirs、enable、export、hash、history、popd、pushd、local、pwd、set、unset、shopt、ulimit、umask、eval、trap(信號命令)this

set是用來調試腳本的時候設置參數用的命令行

  • -v 表示可視模式,效果就是在執行bash的時候會把將要執行的內容也打印出來
  • -x (Xtrace)跟蹤模式,跟蹤各類語法的調用,並打印出輸出的結果
  • -n 用來檢查bash的語法錯誤,並不會真正執行bash腳本。
    這三個參數既能夠放在shebang後面,也能夠放在程序中你須要的地方。

查看一個命令是否是內建命令,使用type command,能夠直接看到返回的結果調試

type trap
trap 是 shell 內建
type find
ind 是 /usr/bin/find
相關文章
相關標籤/搜索