當前位置:首頁 » 操作系統 » linuxexec執行

linuxexec執行

發布時間: 2023-03-06 07:58:03

linux 命令:exec

命令簡介
exec 命令用於調用並執行指定的命令。

exec 命令通常用在 Shell 腳本程序中,可以調用其他的命令。如果在當前終端中使用命令,則當指定的命令執行完畢後會立即退出終端。

-c #在空環境中執行指定的命令
-l #在傳遞給command的第零個arg的開頭放置一個破折號
-a #Shell將name作為第零個參數傳遞給command

輸出指定信息

其它總結

⑵ linux shell腳本 解釋exec

這是一個if結構
判斷 /var/log/x.log 是否存在
然後執行exec命令,將執行輸出的標准信息和錯誤信息都輸出到 /var/log/x.log 文件

⑶ 【exec】shell腳本中的 exec 命令

exec 是 bash 的內置命令

shell 的內件命令exec執行命令時,不啟用新的shell進程。

source 和 . 不啟用新的shell,在當前shell中執行,設定的局部變數在執行完命令後仍然有效。

bash 或 sh 或 shell script 執行時,另起一個子shell,其繼承父shell的環境變數,其子shelll的變數執行完後不影響父shell。

exec是用被執行的命令行替換掉當前的shell進程,且exec命令後的其他命令將不再執行。

例如在當前shell中執行 exec ls  表示執行ls這條命令來替換當前的shell ,即為執行完後會退出當前shell。

為了避免這個結果的影響,一般將exec命令放到一個shell腳本中,用主腳本調用這個腳本,調用處可以用bash  xx.sh(xx.sh為存放exec命令的腳本),這樣會為xx.sh建立一個子shell去執行,當執行exec後該子腳本進程就被替換成相應的exec的命令。

其中有一個例外:當exec命令對文件描述符操作的時候,就不會替換shell,而是操作完成後還會繼續執行後面的命令!

在shell腳本中使用exec命令,根據操作的對象不同會有不同的行為

文件描述符

shell中描述符一共有12個

0  代表標准輸入

1  代表標准輸出

2  錯誤輸出

其他 3-9 都是空白描述符

#  exec3>&1 4>&2 1>> bash.log 2>&1

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

#  ./bash.sh  >> bash.log   2>&1

其含義是:將bash.sh腳本執行的標准輸出和錯誤輸出追加重定向到 bash.log

如果exec 跟的是其他命令,則其他命令結束後,本shell也隨之停止

#  cat test_exec.sh

###################

#!/bin/bash  



echo "Hello mysql"  

exec echo "Hello oracle"  

echo "Hello sqlserver"

####################

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

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

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

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

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

###############

#!/bin/sh

echo "number:$#"

echo "argume:$@"

###############

執行腳本:

./test.sh first_arg  second_arg

說明:給腳本提供了兩個參數,所以$#輸出的結果是2,$@代表了參數的內容!

怎麼理解shell腳本中  exec "`dirname "$0"`/node""$0"  "$@" ?

$0                                      # 腳本自己的路徑

"`dirname "$0"`"/node    # 腳本目錄下的node程序的路徑

$@                                    # 腳本被執行時的命令行參數

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

exec scala "$0" "$@"是什麼意思

這是bash語法。

$0  表示當前腳本的名字

$@  表示當前腳本執行的所有參數

exec scala "$0" "$@"    表示用scala命令,帶參數,執行當前腳本

exec  sh "$0  在這個文件里,exec sh  $0是什麼意思?

############

#!/bin/sh

echo  "Hello!"

sleep 2

execsh "$0"

#############

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

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

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

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

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

#############

#!/bin/sh

echo  "Hello!"

sleep 2

exec   "$0"

#############

熱點內容
cryptopythonrsa 發布:2025-08-21 03:36:29 瀏覽:673
androidmandroidn 發布:2025-08-21 03:31:50 瀏覽:210
為什麼不能把安卓桌面app設為默認 發布:2025-08-21 03:22:31 瀏覽:442
愛奇藝會員密碼哪裡設置 發布:2025-08-21 03:11:57 瀏覽:262
電信電話密碼是什麼 發布:2025-08-21 03:08:14 瀏覽:446
sqlserver自動收縮 發布:2025-08-21 03:07:28 瀏覽:685
微信伺服器開哪個地址 發布:2025-08-21 03:06:12 瀏覽:652
diy源碼 發布:2025-08-21 02:42:36 瀏覽:480
信息存儲與信息檢索 發布:2025-08-21 02:22:32 瀏覽:122
android非同步數據載入數據 發布:2025-08-21 02:09:33 瀏覽:245