shell腳本執行順序
ash shell 腳本的方法有多種,現在作個小結。假設我們編寫好的shell腳本的文件名為hello.sh,文件位置在/data/shell目錄中並已有執行許可權。
方法一:切換到shell腳本所在的目錄(此時,稱為工作目錄)執行shell腳本:
cd /data/shell
./hello.sh
./的意思是說在當前的工作目錄下執行hello.sh。如果不加上./,bash可能會響應找到不到hello.sh的錯誤信息。因為目前的工作目錄(/data/shell)可能不在執行程序默認的搜索路徑之列,也就是說,不在環境變數PASH的內容之中。查看PATH的內容可用 echo $PASH 命令。現在的/data/shell就不在環境變數PASH中的,所以必須加上./才可執行。
方法二:以絕對路徑的方式去執行bash shell腳本:
/data/shell/hello.sh
方法三:直接使用bash 或sh 來執行bash shell腳本:
cd /data/shell
bash hello.sh
或
cd /data/shell
sh hello.sh
注意,若是以方法三的方式來執行,那麼,可以不必事先設定shell的執行許可權,甚至都不用寫shell文件中的第一行(指定bash路徑)。因為方法三是將hello.sh作為參數傳給sh(bash)命令來執行的。這時不是hello.sh自己來執行,而是被人家調用執行,所以不要執行許可權。那麼不用指定bash路徑自然也好理解了啊,呵呵……。
方法四:在當前的shell環境中執行bash shell腳本:
cd /data/shell
. hello.sh
或
cd /data/shell
source hello.sh
前三種方法執行shell腳本時都是在當前shell(稱為父shell)開啟一個子shell環境,此shell腳本就在這個子shell環境中執行。shell腳本執行完後子shell環境隨即關閉,然後又回到父shell中。而方法四則是在當前shell中執行的。
『貳』 linux中.sh腳本文件中命令的執行順序
每條命令後如果不加&的話就是依次一行一行的順序執行,只有前面一行執行完成後再執行下一行,如果希望多個命令在一個shell內執行可在一行寫入多條命令,用&&符號間隔
『叄』 怎麼用一個命令使多個shell腳本並行執行 例如三個腳本 run1.sh,run2.sh
參考後修改:
run1.sh&
run2.sh&
run3.sh&
forchildin`ps-ef|grep"$$"|grep-vgrep|grep-v"$PPID"|awk'{print$2}'`
do
wait-n$child
echo"process$childexited"
done
echo"done"
『肆』 如何執行shell腳本其中一條命令
方法一:切換到shell腳本所在的目錄(此時,稱為工作目錄)執行shell腳本:
復制代碼代碼如下:
cd /data/shell
./hello.sh
./的意思是說在當前的工作目錄下執行hello.sh。如果不加上./,bash可能會響應找到不到hello.sh的錯誤信息。因為目前的工作目錄(/data/shell)可能不在執行程序默認的搜索路徑之列,也就是說,不在環境變數PASH的內容之中。查看PATH的內容可用 echo $PASH 命令。現在的/data/shell就不在環境變數PASH中的,所以必須加上./才可執行。
方法二:以絕對路徑的方式去執行bash shell腳本:
復制代碼代碼如下:
/data/shell/hello.sh
方法三:直接使用bash 或sh 來執行bash shell腳本:
復制代碼代碼如下:
cd /data/shell
bash hello.sh
或
復制代碼代碼如下:
cd /data/shell
sh hello.sh
注意,若是以方法三的方式來執行,那麼,可以不必事先設定shell的執行許可權,甚至都不用寫shell文件中的第一行(指定bash路徑)。因為方法三是將hello.sh作為參數傳給sh(bash)命令來執行的。這時不是hello.sh自己來執行,而是被人家調用執行,所以不要執行許可權。那麼不用指定bash路徑自然也好理解了啊,呵呵……。
方法四:在當前的shell環境中執行bash shell腳本:
復制代碼代碼如下:
cd /data/shell
. hello.sh
或
復制代碼代碼如下:
cd /data/shell
source hello.sh
前三種方法執行shell腳本時都是在當前shell(稱為父shell)開啟一個子shell環境,此shell腳本就在這個子shell環境中執行。shell腳本執行完後子shell環境隨即關閉,然後又回到父shell中。而方法四則是在當前shell中執行的。
『伍』 windows怎麼運行shell腳本
在工作中情況會在碰到linux下進行執行shell的腳本,而就會使用shell的腳本,但經常使用的Windows的系統,而想在Windows電腦中進行直接shell的腳本,而不用再進行學習其它的腳本語言。
工具/原料
Windows
git
方法/步驟
1、首先電腦中需要安裝的是git的應用程序,安裝完成之後,可以在開始菜單進行查看。
『陸』 Shell基礎腳本-運算符優先順序
在腳本中,運算執行的順序被稱為優先順序: 高優先順序的操作會比低優先順序的操作先執行
表-1. 運算符優先順序(從高到低)
實際上,你只需要記住以下規則就可以了:
現在,讓我們利用運算符優先順序的知識來分析一下Fedora Core Linux中的/etc/init.d/functions文件。
為了避免在復雜比較運算中的錯誤,可以把運算分散到幾個括弧結構中
『柒』 Linux Shell腳本的執行過程
用戶登錄時,將會取得一個 bash ,這個 bash 在系統中有一個全局唯一的ID,也就是進程的ID,使用命令 ps -ef 並配合 grep 來查看進程ID。 ps -ef|grep bash ,此命令還能查看進程對應的父進程ID,系統中所有進程的祖先進程都是INIT進程(進程ID=1),它是最先啟動運行的。
回到 bash 進程,也就是我們的命令行界面,進程的執行都有其附屬的執行環境,環境變數就屬於其中之一。並且環境變數是可以完全被子進程繼承的,也就是說,子進程可以使用父進程的環境變數,但是不能使用父進程的自定義變數。
簡而言之: 子進程繼承父進程的環境變數,不繼承父進程的自定義變數。
shell腳本有4種執行方式,不同的執行方式可能導致結果不一致
四種方式的執行結果如下:
『捌』 怎樣將多條linux命令寫成shell腳本順序執行
kill -9 `ps -ef |grep weblogic |awk '{print $2}'` //強制殺掉該進程
cd /home/bea/user_project/domain/oms_domain/ //進入weblogic域絕對路徑
mv tbp_config `date +%F`tbp_config //將老的工程項目修改為yyyy-mm-ddtbp_config
cd apps //進入apps目錄
mv TBPWeb `date +%F`TBPWeb //將老的工程項目修改為yyyy-mm-ddTBPWeb
unzip Webconnect.zip //解壓新項目壓縮包
mv Webconnect/ TBPWeb/ //將新項目名稱修改為TBPWeb
cd .. //回到上級目錄
unzip tbp_config.zip //解壓新項目壓縮包
nohup ./startWeblogic.sh && //後台啟動weblogic
tail -f nohup.out //查看啟動信息