在shell下執行命令的方法


在shell下執行命令的方法

1. #!/bin/sh

語法:在shell.sh的開頭寫入

#!/bin/sh
一般的shell腳本就是這種用法。這種方法調用腳本開頭的shell執行命令,子shell執行的時候, 父shell暫停運行,等待子shell運行完后返回父shell。子shell從父shell繼承環境變量.但是子shell中的環境變量不會帶回父 shell

2. exec

語法:

exec 命令

exec與fork不同,不需要新開一個sub-shell來執行被調用的腳本. 被調用的腳本與父腳本在同一個shell內執行。但是使用exec調用一個新腳本以后, 父腳本中exec行之后的內容就不會再執行了(相當於父shell被子shell刪除)

3. source或者

語法:

source /xxx/shell.sh
. /xxx/shell.sh

(1)與fork的區別是不新開一個子shell來執行被調用的腳本,而是在同一個shell中執行。所以被調用的腳本中聲明的變量和環境變量, 都可以在主腳本中得到和使用。
(2)與 exec 的區別在於這個命令開啟的子shell不會將父shell吞噬,執行完這個子shell以后還可以繼續執行父shell下面的指令

4. ()
語法:

( 語句;語句;語句;…… )

圓括號中命令列表的命令將會運行在一個子shell中。

比如:

$ (cd ..;ls -l)

cd ..命令改變的是子Shell的PWD,而不會影響到交互式Shell。
然而命令

$ cd ..;ls -l

則有不同的效果,cd ..命令是直接在交互式Shell下執行的,改變交互式Shell的PWD,然這種方式相當於執行Shell腳本:

5.{}
語法:

{語句;語句;……}

不會啟動子shell


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM