導航:首頁 > 程序命令 > sh中執行命令

sh中執行命令

發布時間:2023-04-09 17:04:34

linux上.sh文件中的命令為什麼執行不了

linux下所有程序必須加上執行祥汪許可權才能執行,而不是像windows一樣根據擴展名茄宴團確定能否執行
chmod +x .sh文件
加上 x權顫橘限方能執行

❷ shell中怎麼批量執行命令。

將要執行的命令全部寫入一個文件(俗稱腳本文件),然後執行腳本文件即可。
注意:假設腳本文件名為test.sh(後綴不必要,只是為了清楚表明是腳本文件),那麼在執行腳本文件前,要用 chmod +x test.sh 賦予其可執行許可權。然後才能像執行命令那樣執行腳本。
--------------------
多台伺服器跟一台伺服器的操作類似,通信協議和操作方式都是相同的,只是IP地址不同。
所以只要寫一個循環,
for ip in $ip1 $ip2 $ip3
do
使用 $ip 做伺服器操作
done

❸ setenv.sh怎麼執行

setenv.sh的執行方式上通過shell執行。shell命拿者令可以事先寫入一個文件中,使用時shell讀取文件中的命令逐條解釋執行,這種文件,被稱為腳本。
執行腳本的方法與執行其他程序一樣,如: ​./setenv.sh #setenv.sh是當前知敏兆目錄下的一個腳本
​以這種方法執行腳本時,其中的命令是在一個子shell中執行的。子shell繼承了父shell的環境變數,但無法修改他們,或者說所做的修改僅對子shell有效。
​如果要使用腳本來修改環境變數,則必須讓腳本在當前shell中執行,這一點可以用以下命令實現:
​source setenv.sh #讀入setenv.sh文件中的搭租命令,在當前shell中執行

❹ 如何在shell腳本中執行cd命令

可以使用eval命令。eval命令,如同熟悉的其他腳本語言,會將它的參數做為命令執行。eval命令將會首先掃描命令行進行所有的替換,然後再執行命令。該命令使用於那些一次掃描轎陸無法實裂帆敗現其功能的變數。該命令對變數進行兩次掃描。這些需要進行兩次掃描的變數有時候被稱為復雜變數。命令格式:eval [參數]
補充說明:eval可讀取一連串的參數,然後再依參數本身的特性來執行。肆顫參數不限數目,彼此之間用分號分開。

❺ linux執行sh腳本的指令有哪些

bash 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是什麼意思

1、sh是linux中運行shell的命令,是shell的解釋器,shell腳本是linux中殼層與命令行界面,用戶可以在shell腳本輸入命令來執行各種各樣的任務。

要運行shell腳本,首選需要給shell腳本許可權,這里里以hello.sh文件為例,首先需要按下「crtl+shift+T」打開終端窗口:

❼ linux中.sh腳本文件中命令的執行順序

每條命令後如果不加&的話就是依次一行一行的順序執行,只有前面一行執行完成後再執行下一行,如果希望多個命令在一個shell內執行可在一行寫入多條命令,用&&符號間隔

❽ shell腳本中的 exec 命令

  exec執行命令時,不會啟用新的shell進程。
  source和 .也不會啟用新的shell進程,在當前shell中執行,設定的局部變數在執行完命令後仍然有效。
  bash或sh執行時,會另起一個子shell進程,其繼承父shell進程的環境變數,其子shell進程的變數執行完後不影響父shell進程。
  exec是用被執行的命令行替換掉當前的shell進程,且exec命令後的其他命令將不再執行。
  例如在當前shell中執行 exec ls 表示執行ls這條命令來替換當前的shell ,即為執行完後會退出當前shell。
  為了避免父shell被退出,一般將exec命令放到一個子shell腳本中,在父sehll中調用這個子shell腳本,調用處可以用bash xx.sh(xx.sh為存放exec命令的腳本),這樣會為xx.sh建立一個子shell去執行,當執行exec後該子shell進程就被替換成相應的exec的命令。

  其中有一個例外:當exec命令對文件描述符操作的時候,就不會替換shell,而是操作完成後還會繼續執行後面的命令!
文件描述符
shell中描述符一共有12個
0 代表標准輸入
1 代表標准輸出
2 錯誤輸出
其他 3-9 都是空白描述符

其含義是: 復制標准輸出到3 ,錯誤輸出到 4 ,把 3 4 保存在bash.log 這個文件中。

其含義是:將bash.sh腳本執行的標准輸出和錯誤輸出追加重定向到 bash.log
如果exec 跟的是其他命令,則其他命令結束後,本shell也隨之停止

可以看到隨著 echo " hello oracle" 這條指令運行完本 整個腳本執行完畢,後面的 echo " hello db2" 沒有執行!

二、Linux shell 腳本中, $@ 和 $@ 分別是什麼意思?

$@ 表示所有腳本參數的內容

$# 表示返回所有腳本參數的個數

示例:編寫如下shell腳本,保存為test.sh

說明:給腳本提供了兩個參數,所以 @代表了參數的內容!

怎麼理解shell腳本中 exec "`dirname "$0"`/node""$0" "$@" ?
$0            #腳本自己的路徑
"`dirname "$0"`"/node    #腳本目錄下的node程序的路徑
$@            #腳本被執行時的命令行參數

合起來就是:用腳本目錄下的node程序來解釋這個腳本本身

exec scala "$0" "$@" 是什麼意思
這是bash語法。
$0          #表示當前腳本的名字
$@          #表示當前腳本執行的所有參數
exec scala "$0" "$@"   #表示用scala命令,帶參數,執行當前腳本

$0 是位置參數,表示腳本名稱

$1 表示腳本的第一個參數,依次類推直到 $9

exec用於執行命令、或腳本、或外部可執行程序,會新建一個shell去執行

綜上,這里exec sh "$0" 就是執行腳本本身

所以,就是一個循環過程,每隔兩秒列印一次 Hello

❾ Linux中的sh命令的詳細解釋

linxu下的sh命令相當於是shell命令語言的解釋器。下面由我為大家整理了linux的sh命令的詳細解釋的相關知識,希望對大家有幫助!

一、Linux中的sh命令的詳細解釋

sh命令是shell命令語言解釋器,執行命令從標准輸入讀取或從一個文件中讀取。通過用戶輸入命令,和內核進行溝通!Bourne Again Shell (即bash)是自由軟體基金會(GNU)開發的一個Shell,它是Linux系統中一個默認的Shell。Bash不但與Bourne Shell兼容,還繼承了C Shell、Korn Shell等優點。

語法

bash [options] [file]

選項

-c string:命令從-c後的字元串讀取。

-i:實現腳本交互。

-n:進行shell腳本的語法檢查。

-x:實現shell腳本逐條語句的跟蹤。

二、Linux中的sh命令的具體例子

使用-x選項跟蹤腳本調試shell腳本,能列印出所執行的每一行命令以及當前狀態:

[root@AY1307311912260196fcZ satools]# sh -x check_ssh_login.sh

+ DEFINE=30

+ cat /var/log/secure

+ awk '/Failed/ {++ip[$(NF-3)]} END {for (i in ip) print i"="ip[i]}'

++ cat /root/satools/black.txt

+ for i in '`cat /root/satools/black.txt`'

++ echo 121.42.0.16=1427

++ awk -F= '{print $1}' + IP=121.42.0.16

++ echo 121.42.0.16=1427

++ awk -F= '{print $2}'

+ NUM=1427

+ '[' 1427 -gt 30 ']'

+ grep 121.42.0.16 /etc/hosts.deny

+ '[' 1 -gt 0 ']'

+ echo sshd:121.42.0.16

+ echo vsftpd:121.42.0.16

+ for i in '`cat /root/satools/black.txt`'

++ echo 121.42.0.72=276

++ awk -F= '{print $1}'

+ IP=121.42.0.72

++ awk -F= '{print $2}'

++ echo 121.42.0.72=276

+ NUM=276 + '[' 276 -gt 30 ']'

+ grep 121.42.0.72 /etc/hosts.deny

+ '[' 1 -gt 0 ']'

+ echo sshd:121.42.0.72

+ echo vsftpd:121.42.0.72

三、Linux中對.sh文件的操作命令

1、創建test.sh文件

touch test.sh

2、編輯sh文件

vi test.sh

3、保存退出

敲擊esc, 然後輸入 :wq ,回車退出

4、添加可執行許可權,當然默認就是可執行的。

chmod +x test.sh

5、運行文件

(1)./test.sh

(2)sh test.sh

6、刪除文件

rm test.sh

閱讀全文

與sh中執行命令相關的資料

熱點內容
excel表格單列數據加密 瀏覽:646
給同事的解壓話語 瀏覽:990
linux關閉網卡命令行 瀏覽:452
史上最漂亮程序員 瀏覽:768
java實現excel的導入 瀏覽:758
光遇賬號如何轉移安卓 瀏覽:266
5分之13除以26的演算法 瀏覽:342
蘭州安寧區買解壓包子 瀏覽:641
php接收圖片代碼 瀏覽:668
hci命令 瀏覽:662
福建伺服器大區雲空間 瀏覽:840
筆桿子程序員 瀏覽:745
手機軟體易驗證加密 瀏覽:589
文檔加密只讀模式也不能看到 瀏覽:431
把jpg轉換成pdf的軟體 瀏覽:874
linuxeth0mac 瀏覽:192
windows編程知乎 瀏覽:442
壓縮工期超過40 瀏覽:249
Android怎麼優化內存 瀏覽:106
linuxetcsysconfig 瀏覽:396