1. 程式人生 > >Linux--shell指令碼執行方法總結

Linux--shell指令碼執行方法總結

linux下新建一個print hello world的指令碼程式,如下所示:

~/boke---> vim hello.sh
~/boke---> cat hello.sh
#!/bin/bash
#this is hello script
echo 'hello, I am yLiu'

先來檢視hello.sh的檔案屬性,如下所示:

~/boke---> ll hello.sh
-rw-r--r-- 1 yliu sw 60 Apr 13 16:16 hello.sh

可以發現hello.sh的檔案所有者、所有者所在組及其他使用者都沒有執行的許可權,即沒有x許可權

  • 方法1:指定shell直譯器來執行(程式碼#!/bin/bash
    可不寫)
~/boke---> bash hello.sh
hello, I am yLiu
  • 方法2:新增檔案x許可權來執行;
#新增執行許可權,3類物件,2種方法
~/boke---> chmod u+x hello.sh      #給所有者+執行許可權
~/boke---> ll hello.sh
-rwxr--r-- 1 yliu sw 60 Apr 13 16:16 hello.sh
~/boke---> 
~/boke---> chmod g+x hello.sh      #給所有者所在組+執行許可權
~/boke---> ll hello.sh
-rwxr-xr-- 1
yliu sw 60 Apr 13 16:16 hello.sh ~/boke---> ~/boke---> chmod o+x hello.sh #給其他人+執行許可權 ~/boke---> ll hello.sh -rwxr-xr-x 1 yliu sw 60 Apr 13 16:16 hello.sh ~/boke---> ~/boke---> chmod a+x hello.sh #給所有人+執行許可權 等於前面3條命令的和 ~/boke---> ll hello.sh -rwxr-xr-x 1 yliu sw 60 Apr 13 16:16 hello.sh #一般使用最後一種方法即chmod a+x hello.sh來新增許可權即可
#新增許可權後執行該指令碼程式,指定指令碼路徑即可執行(程式碼```#!/bin/bash```必須寫)
~/boke---> ./hello.sh
hello, I am yLiu
  • 方法3:利用命令.號來執行,該指令碼無可執行許可權也可執行,此方法最簡單;
~/boke---> chmod a-x hello.sh      #取消所有人的執行許可權
~/boke---> ll hello.sh
-rw-r--r-- 1 yliu sw 60 Apr 13 16:16 hello.sh
~/boke--->
~/boke---> . hello.sh              #使用.命令執行
hello, I am yLiu
~/boke--->
  • 方法4:此方法為方法2的擴充套件,新增執行x許可權後放入系統環境變數目錄中,即可在任何目錄下執行改指令碼,並無需指定指令碼路徑。
~/boke---> echo $PATH				   #檢視系統環境變數$PATH目錄
/usr/lib64/qt-3.3/bin:/usr/local/bin:/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/sbin
~/boke---> chmod a+x hello.sh          #新增x許可權
~/boke---> sudo cp hello.sh /usr/bin/  #拷貝指令碼至$PATH中的一個    
~/boke---> ll /usr/bin/he              #確認拷貝成功
head                 heimdal-krb5-config  hello.sh             helpviewer           hexdump
~/boke---> ll /usr/bin/hello.sh        #檢查指令碼x許可權
-rwxr-xr-x 1 root root 60 Apr 13 16:45 /usr/bin/hello.sh
~/boke--->
~/boke---> cd ~                        #切換至任意目錄
~---> he                               #tab鍵匹配生效
head                 heimdal-krb5-config  hello.sh             help                 helpviewer           hexdump
~---> hello.sh                         #正確執行該指令碼
hello, I am yLiu
~--->