linux執行shell指令碼的方式及一些區別

2021-06-16 12:40:28 字數 1339 閱讀 3595

假設shell指令碼檔案為hello.sh

放在/root目錄下。下面介紹幾種在終端執行shell指令碼的方法:

[root@localhost home]# cd /root/

[root@localhost ~]#vim hello.sh

#!  /bin/bash

cd /tmp

echo "hello guys!"

echo "welcome to my blog:linuxboy.org!"

1.切換到shell指令碼所在的目錄,執行:

[root@localhost ~]# ./hello.sh

-bash: ./ hello.sh:

許可權不夠

2.以絕對路徑的方式執行:

[root@localhost ~]# /root/desktop/hello.sh

-bash: /root/desktop/ hello.sh: 許可權不夠

3.直接用bash或sh執行:

[root@localhost ~]# bash hello.sh

hello guys!

welcome to my blog:linuxboy.org!

[root@localhost ~]# pwd

/root

[root@localhost ~]# sh hello.sh

hello guys!

welcome to my blog:linuxboy.org!

[root@localhost ~]# pwd

/root

注意:用以上三種方法執行shell指令碼,現行的shell會開啟乙個子shell環境,去執行shell指令碼,前兩種必須要有執行許可權才能夠執行

也可以讓shell指令碼在現行的shell中執行:

4.現行的shell中執行

[root@localhost ~]# . hello.sh

hello guys!

welcome to my blog:linuxboy.org!

[root@localhost tmp]# pwd

/tmp

[root@localhost ~]# source hello.sh

hello guys!

welcome to my blog:linuxboy.org!

[root@localhost tmp]# pwd

/tmp

對於第4種不會建立子程序,而是在父程序中直接執行

上面的差異是因為子程序不能改變父程序的執行環境,所以cd(內建命令,只有內建命令才可以改變shell 的執行環境)沒有成功,但是第4種沒有子程序,所以cd成功

原文出處

Linux 執行shell指令碼的方法

方法一 切換到shell指令碼所在的目錄 此時,稱為工作目錄 執行shell指令碼 如下 cd data shell hello.sh 的意思是說在當前的工作目錄下執行hello.sh。如果不加上.bash可能會響應找到不到hello.sh的錯誤資訊。因為目前的工作目錄 data shell 可能不...

Linux下執行Shell指令碼

linux下可以用兩種方式執行shell指令碼 1 用shell程式執行指令碼 根據你的shell指令碼的型別,選擇shell程式,常用的有sh,bash,tcsh等。一般來說,第一行 bin bash裡面指明了shell型別的,比如 bin bash指明是bash,bin sh則是sh 然後輸入命...

shell 執行shell指令碼

bin bash echo hello world 是乙個約定的標記,它告訴系統這個指令碼需要什麼直譯器來執行,即使用哪一種 shell。echo 命令用於向視窗輸出文字。1 作為可執行程式 chmod x test.sh 使指令碼具有執行許可權 test.sh 執行指令碼注意,一定要寫成 test...