Shell指令碼中點號 檔名的作用

2021-09-30 07:22:12 字數 764 閱讀 9374

linux中乙個檔案是根據其是否具有執行屬性來判斷他是否可以直接執行的。就像windows下的exe一樣

如果我們要執行某乙個檔案,可以先將其許可權修改為可執行(必須是所有者或者root才能修改)。然後

通過用sh來執行該指令碼或者./指令碼名。

但有時候我們並不想修改檔案許可權,可能我們也沒有那個許可權,所以我們可以使用.點號+檔名來臨時

執行乙個指令碼而無須修改許可權。在linux系統中存在大量的指令碼,其中你會看到大量這個用

source命令(從 c shell 而來)是bash shell的內建命令。點命令,就是個點符號,(從bourne shell而來)是source的另一名稱。同樣的,當前指令碼中配置的變數也將作為指令碼的環境,source(或點)命令通常用於重新執行剛修改的初始化文件,如 .bash_profile 和 .profile 等等。例如,假如在登入後,對.bash_profile 中的 editer 和 term 變數做了修改,則能夠用source命令重新執行 .bash_profile 中的命令而不用登出並重新登入。 source命令的作用就是用來執行乙個指令碼,那麼: source a.sh 同直接執行 ./a.sh 有什麼不同呢,比如您在乙個指令碼裡export $kkk=111 ,假如您用./a.sh執行該指令碼,執行完畢後,您執行 echo $kkk ,發現沒有值,假如您用source來執行 ,然後再echo ,就會發現kkk=111。因為呼叫./a.sh來執行shell是在乙個子shell裡執行的,所以執行後,結果並沒有反應到父shell裡,但是source不同他就是在本shell中執行的,所以能夠看到結果

linux shell 點號 空格 檔名

今天在看 etc init.d nginx指令碼時,發現指令碼中存在大量行為 點號 空格 檔名 甚是不解。比如檔案開始的幾行 if r etc default nginx then etc default nginx fi.lib init vars.sh lib lsb init function...

shell指令碼 批量修改檔名 檔名中新增字元

舉例如下 批量建立10個隨機字串的檔案,要求每個檔名後面新增 aaa,字尾名不變 root localhost goodboy ls adddbbdedf.html baacjaiija.html bhcfaabcfh.html dgjdcdfbca.html efejadfdji.html agd...

shell指令碼 批量修改檔名 刪除檔名中字元

舉例如下 批量改名,刪除檔名中多餘字元 目錄下檔名為如下,要求去掉 finished。可以實現的方法有很多種 方法一 for迴圈結合sed替換 baby localhost for file in ls jpg do mv file echo file sed s finished g done 方...