linux 系統變數

2021-07-05 02:35:30 字數 907 閱讀 5323

linux 系統變數 $-,在linux配置檔案中經常用到。 比如在 /etc/profile配置檔案中有如下**:

for i in /etc/profile.d/*.sh ; do

for [ -r "$i" ]; then

if [ "$" != "$-" ]; then

. "$i"

else

. "$i" > /dev/null 2>&1

fifi

done

對這段話的理解:如果是互動式系統則把執行profile.d 下檔案資訊,列印出來,如果不是則把全部資訊丟進/dev/null中,廢棄。

在我的centos 6.5系統中執行:echo $- ,執行的結果為himbh。系統變數$-的值為himbh。

在bash reference manual 中對$-的解釋為:($-, a hyphen.) expands to the current option flags as specified uponinvocation, by thesetbuiltin command, or those set by the shell itself(such as the -i option).。$-由lbash 內嵌命令set設定。在bash reference manual 中的「the set builitin"中可以查詢到他們的示意。如下:

上面有一句shell語句有點奇葩,說說對它的理解。

if [ "$" != "$-" ]; 。 $ 表示 在$-中,把從頭到i的值去掉,留下剩餘的值,如果沒有找到i則不會截斷,兩者就是相等的。由上可知 『  i 』表示互動式,在我的centos中,因為是互動式的,所以這個表示式為真。。。。

小弟第一篇博文,望大神們閱讀後,指出錯誤和不好的地方,謝謝!!!!

linux常用系統變數

常用系統變數 0 當前程式的名稱 n 當前程式的第n個引數,n 1,2,9 當前程式的所有引數 不包括程式本身 當前程式的引數個數 不包括程式本身 當前程式的pid 與 相同,但是使用時加引號,並在引號中返回每個引數 顯示shell使用的當前選項,與set命令功能相同 執行上乙個指令的pid 好像不...

linux常用系統變數

常用系統變數 0 當前程式的名稱 n 當前程式的第n個引數,n 1,2,9 當前程式的所有引數 不包括程式本身 當前程式的引數個數 不包括程式本身 當前程式的pid 與 相同,但是使用時加引號,並在引號中返回每個引數 顯示shell使用的當前選項,與set命令功能相同 執行上乙個指令的pid 好像不...

Linux 系統環境變數

1.顯示環境變數home echo home 2.設定乙個新的環境變數welcome export welcome hello 3.使用env命令顯示所有的環境變數 env 4.使用set命令顯示所有本地定義的shell變數 set 5.使用unset命令來清除環境變數 unset test 刪除環...