一、在shell中經常需要測試一些變數的狀態,以下是部分測試條件
comparisons:
-eqequal to
-nenot equal to
-ltless than
-leless than or equal to
-gtgreater than
-gegreater than or equal to
file operations:
-sfile exists and is not empty
-ffile exists and is not a directory
-ddirectory exists
-xfile is executable
-wfile is writable
-rfile is readable
二、stdin, stdout, stderr分別等於幾?
the unix / linux standard i/o streams with numbers:
handle
name
description
0stdin
standard input
1stdout
standard output
2stderr
standard error
三、shell 指令碼中, $#、 $?、 #0分別代表什麼?
$#:傳遞個指令碼的引數個數
$?:最後執行命令的結束**;
$0:shell本身的檔名
$$:shell本身的pid
$!:shell最後執行的後台程序的pid
$- :
使用set命令設定的flag一覽
$* :
所有引數列表。如"$*"用「"」括起來的情況、以"$1 $2 … $n"的形式輸出所有引數。
$@ :
所有引數列表。如"$@"用「"」括起來的情況、以"$1" "$2" … "$n" 的形式輸出所有引數。
$1~$n :
新增到shell的各引數值。$1是第1引數、$2是第2引數…。
find 搜尋檔案/ 搜尋資料夾
搜尋檔案: find ./ -type f | xargs grep "key_word"
搜尋資料夾: find ./ -type d | grep "key_word"
shell必備基礎知識
shell指令碼 規範的shell指令碼的一般組成。環境宣告 重定向出輸出 只收集前面命令的正確輸出 重定向輸入 覆蓋 追加 2 只收集前面命令的錯誤輸出 收集前面命令的錯誤與正確的輸出 2 將錯誤的變成正確的輸出 2 將正確的變為錯誤的輸出 dev null 黑洞路徑變數 以不變的名稱存放的可能會...
必備shell命令
toc 在編譯的時候,常用的比較長的命令或者路徑,可以用變數代替,例如l 使用的時候可以 l 開啟檔案或者目錄 等等。xdg open file url 列印 顯示字串 echo path 給命令去綽號 alias c clean 永久有效 vim bashrc 寫到末尾去。1,作用 在指定的範圍內...
Shell 指令碼 基礎知識點 入門必備
命名 shell指令碼以 sh為字尾 shell 是使用 c語言編寫的程式。告訴系統其後路徑所指定的程式即是解釋此指令碼檔案的 shell 程式。指的是根目錄 值得是當前目錄 表示傳入指令碼的引數的個數 shell 數值比較 可以通過這種方式來理解,e eq表示equal即相等的意思。l表示less...