您好,登錄后才能下訂單哦!
這篇文章給大家分享的是有關Shell常用的知識點有哪些的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。
readlink 能幫助我們在Linux環境獲取命令所在的實際目錄下
#dirname "$(dirname "$(readlink -f "$(which javac || which java)")")"
root@devops:~# ls /usr/local/
bin/ games/ jdk/ lib/ openresty/ share/
etc/ include/ jdk1.8.0_171/ man/ sbin/ src/
root@devops:~# ls /usr/local/
bin etc games include jdk jdk1.8.0_171 lib man openresty sbin share src
root@devops:~# which javac
/usr/local/jdk/bin/javac
root@devops:~# readlink -f $(which javac)
/usr/local/jdk1.8.0_171/bin/javac
set
是BASH內置的命令,如果不提供選項給set
,默認情況下會打印所有的變量和函數的名稱和值。
常用的選項:
-u
或者-o nounset
: 執行腳本時遇到的不存在的變量時報錯,默認情況下BASH會自動忽略
set -x
或者-o xtrace
: 用來在運行結果之前,先輸出執行的那一行命令。一般在調試腳本時候很有用
-e
: 根據返回值判斷命令是否運行成功。只要腳本發生錯誤,就終止執行。但是對于管道命令來說就不是很好用了。因為管道命令是把最后一個命令的返回值當做整理命令的返回值
+e
: 關閉-e
選項,為了針對特殊的場景,比如有些返回值為非零的時候才執行腳本時候可以使用。
set -o pipefail
: 只要有一個子命令失敗,整個管道命令就失敗了。
一般建議將以上四個刪除放在BASH的頭部使用
#!/bin/bash
set -eux
set -p pipefail${YOUR_COMMAND}
變量 | 含義 |
---|---|
$0 | 當前腳本的文件名 |
$n | 傳遞給腳本或函數的參數。n 是一個數字,表示第幾個參數。例如,第一個參數是2。 |
$# | 傳遞給腳本或函數的參數個數。 |
$* | 傳遞給腳本或函數的所有參數。 |
$@ | 傳遞給腳本或函數的所有參數。被雙引號(“ “)包含時,與 $* 稍有不同 |
$? | 上個命令的退出狀態,或函數的返回值。 |
$$ | 當前Shell進程ID。對于 Shell 腳本,就是這些腳本所在的進程ID。 |
感謝各位的閱讀!關于“Shell常用的知識點有哪些”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。