當前位置:首頁 » 編程軟體 » 中斷shell腳本

中斷shell腳本

發布時間: 2022-06-14 06:27:51

A. 使用exec執行一個腳本後原有的shell就中斷了嗎

查一下英文說明,不會創建新的進程(No new process is created)。也就是說不會有新的pid
exec [-cl] [-a name] [command [arguments]]
If command is specified, it replaces the shell. No new process is created. The arguments become the arguments to command. .........

B. 如何讓shell腳本某一步出錯輸出錯誤提示並終止執行腳本

if [ 出錯 ]
then echo "錯誤"; exit 1;
fi

C. 寫一個簡單的shell腳本,腳本運行時讓CTRL+C無法中斷的該shell腳本

在shell腳本中用trap命令捕獲SIGINT信號(ctrl+c產生的中斷信號)就可以了
系統給出的SIGINT信號數字為2
2) SIGINT
所以,只要在腳本中要循環執行的內容前面加入以下語句即可:
trap "" 2
或者直接寫信號名稱也可以:
trap "" SIGINT
即,當收到信號SIGINT時忽略它,不做任何處理。

D. 什麼是shell腳本

什麼是shell

shell是用戶和linux操作系統之間的介面。Linux中有多種shell,其中預設使用的是Bash。本章講述了shell的工作原理,shell的種類,shell的一般操作及Bash的特性。

什麼是shell

Linux系統的shell作為操作系統的外殼,為用戶提供使用操作系統的介面。它是命令語言、命令解釋程序及程序設計語言的統稱。

shell是用戶和Linux內核之間的介面程序,如果把Linux內核想像成一個球體的中心,shell就是圍繞內核的外層。當從shell或其他程序向Linux傳遞命令時,內核會做出相應的反應。

shell是一個命令語言解釋器,它擁有自己內建的shell命令集,shell也能被系統中其他應用程序所調用。用戶在提示符下輸入的命令都由shell先解釋然後傳給Linux核心。

Shell是一種具備特殊功能的程序, 它是介於使用者和 UNIX/linux 操作系統之核心
程序(kernel)間的一個介面。為什麼我們說 shell 是一種介於系統核心程序與使用者
間的中介者呢?讀過操作系統概論的讀者們都知道操作系統是一個系統資源的管理者與分
配者,當您有需求時,您得向系統提出;從操作系統的角度來看,它也必須防止使用者因
為錯誤的操作而造成系統的傷害?眾所周知,對計算機下命令得透過命令(command) 或
是程序(program);程序有編譯器(compiler)將程序轉為二進制代碼,可是命令呢?
其實shell 也是一支程序,它由輸入設備讀取命令,再將其轉為計算機可以了解的機械碼,
然後執行它。
各種操作系統都有它自己的 shell,以 DOS 為例,它的 shell 就是 command.com文
件。如同 DOS 下有 NDOS,4DOS,DRDOS 等不同的命令解譯程序可以取代標準的
command.com ,UNIX 下除了 Bourne shell(/bin/sh) 外還有 C shell(/bin/csh)、
Korn shell(/bin/ksh)、Bourne again shell(/bin/bash)、Tenex C shell(tcsh)
等其它的 shell。UNIX/linux將 shell 獨立於核心程序之外, 使得它就如同一般的應用
程序, 可以在不影響操作系統本身的情況下進行修改、更新版本或是添加新的功能。

有一些命令,比如改變工作目錄命令cd,是包含在shell內部的。還有一些命令,例如拷貝命令cp和移動命令rm,是存在於文件系統中某個目錄下的單獨的程序。對用戶而言,不必關心一個命令是建立在shell內部還是一個單獨的程序。

shell首先檢查命令是否是內部命令,若不是再檢查是否是一個應用程序(這里的應用程序可以是Linux本身的實用程序,如ls和rm,也可以是購買的商業程序,如xv,或者是自由軟體,如emacs)。然後shell在搜索路徑里尋找這些應用程序(搜索路徑就是一個能找到可執行程序的目錄列表)。如果鍵入的命令不是一個內部命令並且在路徑里沒有找到這個可執行文件,將會顯示一條錯誤信息。如果能夠成功找到命令,該內部命令或應用程序將被分解為系統調用並傳給Linux內核。

shell的另一個重要特性是它自身就是一個解釋型的程序設計語言,shell程序設計語言支持絕大多數在高級語言中能見到的程序元素,如函數、變數、數組和程序控制結構。shell編程語言簡單易學,任何在提示符中能鍵入的命令都能放到一個可執行的shell程序中。

當普通用戶成功登錄,系統將執行一個稱為shell的程序。正是shell進程提供了命令行提示符。作為默認值(TurboLinux系統默認的shell是BASH),對普通用戶用「$」作提示符,對超級用戶(root)用「#」作提示符。

一旦出現了shell提示符,就可以鍵入命令名稱及命令所需要的參數。shell將執行這些命令。如果一條命令花費了很長的時間來運行,或者在屏幕上產生了大量的輸出,可以從鍵盤上按ctrl+c發出中斷信號來中斷它(在正常結束之前,中止它的執行)。

當用戶准備結束登錄對話進程時,可以鍵入logout命令、exit命令或文件結束符(EOF)(按ctrl+d實現),結束登錄。

E. 寫一個簡單的Shell腳本,腳本運行時讓Ctrl-C無法中斷該shell腳本

捕捉信號,然後執行echo顯示提示
調用程序處理信號
trap commands signal-list
常見信號
HUP(1) 掛起,通常因終端掉線或用戶退出而引發
INT(2) 中斷,通常因按下Ctrl+C組合鍵而引發
QUIT(3) 退出,通常因按下Ctrl+\組合鍵而引發
ABRT(6) 中止,通常因某些嚴重的執行錯誤而引發
ALRM(14) 報警,通常用來處理超時
TERM(15) 終止,通常在系統關機時發送
http://www.lslnet.com/linux/dosc1/65/linux-423392.htm
INT 就是中斷信號(linux 中是ctrl-C,SCO unix 中是"del"鍵)
trap 就是捕捉信號,與所提供的arg聯系起來,就是當捕捉到某個信號時執行arg規定的動作。
如文件a:
#!/bin/bash
trap "echo -e \"\nreceive int\n\";exit" INT
while :
do
((i++))
done
由於是死循環,不會退出,按下ctrl-c鍵後,程序會顯示
receive int
並退回$狀態
當arg為空時表示忽略後面指出的信號
trap -p
可顯示信號關聯的命令。請指正。

F. 怎麼在shell 里,中斷shell中某個命令,再執行下個命令

我覺得可以用兩個腳本來實現.
第一個運行 inmon >/home/iip01.log
第二個先殺掉 inmon進程
再運行
df -k >> /home/iip01.log
df -i >>/home/iip01.log

G. 如何使用shell腳本停止應用

參考最底下的shell 代碼,具體功能都有注釋說明的。 使用時將代碼存入文件中,比如 a.sh, 然後:

chmod+xa.sh#增加可執行許可權
./a.shapp_name#替換app_name為你要中止運行的app名稱,比如firefox,emacs,等等


下面是具體代碼

#!/bin/bash

#要停止的應用名字
name=$1

#先要找到你要停止的應用的PID(進程號).這里用pidof命令來找
PID=`pidof$name`

#如果沒有找到,結束
if[-z"$PID"];then
echo"Error:Process$nameisnotfound"
exit1
fi

#然後用kill命令來向進程發送信號來終止應用
#-9表示發送KILL信號,任何進程收到這個信號後都會無條件終止運行。
kill-9$PID

#完成
echo"Done"

H. Shell 腳本 if 判斷後,怎麼終止當前腳本但不退出 shell

代碼如下:

if list then
do something here
elif list then
do another thing here
else
do something else here
fi

EX1:

復制代碼代碼如下:

#!/bin/sh
SYSTEM=`uname -s` #獲取操作系統類型,我本地是linux
if [ $SYSTEM = "Linux" ] ; then #如果是linux的話列印linux字元串
echo "Linux"
elif [ $SYSTEM = "FreeBSD" ] ; then
echo "FreeBSD"
elif [ $SYSTEM = "Solaris" ] ; then
echo "Solaris"
else
echo "What?"
fi #ifend

基本上和其他腳本語言一樣。沒有太大區別。不過值得注意的是。[]裡面的條件判斷。

I. shell腳本中怎麼實現:暫停,按鍵繼續

1、其中 yum install tomcat 執行過程中需要用鍵盤輸入兩次字元」y」以便確認選項,Dockerfile 腳本命令如下。

J. 請教如何實現python腳本中中斷shell命令

importos
cmd_str="kill-p155"
os.system(cmd_str)

可以執行系統命令。不知道是不是你要的?

熱點內容
內置存儲卡可以拆嗎 發布:2025-05-18 04:16:35 瀏覽:333
編譯原理課時設置 發布:2025-05-18 04:13:28 瀏覽:375
linux中進入ip地址伺服器 發布:2025-05-18 04:11:21 瀏覽:610
java用什麼軟體寫 發布:2025-05-18 03:56:19 瀏覽:31
linux配置vim編譯c 發布:2025-05-18 03:55:07 瀏覽:107
砸百鬼腳本 發布:2025-05-18 03:53:34 瀏覽:940
安卓手機如何拍視頻和蘋果一樣 發布:2025-05-18 03:40:47 瀏覽:739
為什麼安卓手機連不上蘋果7熱點 發布:2025-05-18 03:40:13 瀏覽:802
網卡訪問 發布:2025-05-18 03:35:04 瀏覽:510
接收和發送伺服器地址 發布:2025-05-18 03:33:48 瀏覽:371