當前位置:首頁 » 網頁前端 » linux循環腳本執行命令
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

linux循環腳本執行命令

發布時間: 2022-12-22 15:18:35

① 如何在linux命令行中循環執行命令

1、編寫一個shell腳本,在腳本中編寫循環執行的代碼(可以是死循環),然後在linux上運行這個腳本即可。
2、可以把這個腳本在當前運行,也可以讓這個腳本在後台運行。
3、當前運行的腳本如果要kill掉的話,可以直接ctrl+c;後台運行的腳本要kill掉的話,可以PS查看進程ID號,然後執行「kill 進程ID」命令即可。

② 如何在 Linux 啟動時自動執行命令或腳本

Linux繼承了Unix以網路為核心的設計思想,是一個性能穩定的多用戶網路操作系統。有用戶想要在Linux啟動時候自動執行命令腳本,應該怎麼設置呢?這篇文章主要介紹了詳解如何在 Linux 啟動時自動執行命令或腳本,主要有兩種方式,具有一定的參考價值,感興趣的小夥伴們可以參考一下。

方法步驟

在啟動時執行 Linux 腳本

有兩種傳統的方法可以實現在啟動時執行命令或腳本:

方法 #1 - 使用 cron 任務

除了常用格式(分 / 時 / 日 / 月 / 周)外,cron 調度器還支持 @reboot 指令。這個指令後面的參數是腳本(啟動時要執行的那個腳本)的絕對路徑。

然而,這種方法需要注意兩點:

a) cron 守護進程必須處於運行狀態(通常情況下都會運行),同時

b) 腳本或 crontab 文件必須包含需要的環境變數(如果有的話,參考 StackOverflow 獲取更多詳細內容)。

方法 #2 - 使用 /etc/rc.d/rc.local

這個方法對於 systemd-based 發行版 Linux 同樣有效。不過,使用這個方法,需要授予 /etc/rc.d/rc.local 文件執行許可權:

# chmod +x /etc/rc.d/rc.local

然後在這個文件底部添加腳本。

下圖說明如何分別使用 cron 任務和 rc.local 運行兩個示例腳本(/home/gacanepa/script1.sh 和 /home/gacanepa/script2.sh)。

script1.sh:

#!/bin/bash

DATE=$(date +'%F %H:%M:%S')

DIR=/home/gacanepa

echo "Current date and time: $DATE" > $DIR/file1.txt

script2.sh:

#!/bin/bash

SITE="Tecmint.com"

DIR=/home/gacanepa

echo "$SITE rocks... add us to your bookmarks." > $DIR/file2.txt

*啟動時執行 Linux 腳本 *

記住,一定要提前給兩個示例腳本授予執行許可權:

$ chmod +x /home/gacanepa/script1.sh

$ chmod +x /home/gacanepa/script2.sh

在登錄或注銷時執行 Linux 腳本

要在登錄或注銷時執行腳本,分別需要使用 ~.bash_profile 和 ~.bash_logout 文件。多數情況下,後者需要手動創建。在每個文件的底部,添加調用腳本代碼,如前面例中所示,就可以實現這個功能。

補充:Linux基本命令

1.ls命令:

格式::ls [選項] [目錄或文件]

功能:對於目錄,列出該目錄下的所有子目錄與文件;對於文件,列出文件名以及其他信息。

常用選項:

-a :列出目錄下的所有文件,包括以 . 開頭的隱含文件。

-d :將目錄像文件一樣顯示,而不是顯示其他文件。

-i :輸出文件的i節點的索引信息。

-k :以k位元組的形式表示文件的大小。

-l :列出文件的詳細信息。

-n :用數字的UID,GID代替名稱。

-F : 在每個文件名後面附上一個字元以說明該文件的類型,“*”表示可執行的普通文 件;“/”表示目錄;“@”表示符號鏈接;“l”表示FIFOS;“=”表示套接字。

2.cd命令

格式:cd [目錄名稱]

常用選項:

cd .. 返回上一級目錄。

cd ../.. 將當前目錄向上移動兩級。

cd - 返回最近訪問目錄。

3.pwd命令

格式: pwd

功能:顯示出當前工作目錄的絕對路徑。

相關閱讀:Linux主要特性

完全兼容POSIX1.0標准

這使得可以在Linux下通過相應的模擬器運行常見的DOS、Windows的程序。這為用戶從Windows轉到Linux奠定了基礎。許多用戶在考慮使用Linux時,就想到以前在Windows下常見的程序是否能正常運行,這一點就消除了他們的疑慮。

多用戶、多任務

Linux支持多用戶,各個用戶對於自己的文件設備有自己特殊的權利,保證了各用戶之間互不影響。多任務則是現在電腦最主要的一個特點,Linux可以使多個程序同時並獨立地運行。

良好的界面

Linux同時具有字元界面和圖形界面。在字元界面用戶可以通過鍵盤輸入相應的指令來進行操作。它同時也提供了類似Windows圖形界面的X-Window系統,用戶可以使用滑鼠對其進行操作。在X-Window環境中就和在Windows中相似,可以說是一個Linux版的Windows。

支持多種平台

③ linux下shell腳本命令

Shell腳本基本知識

概述:shell其實是內核與用戶之間的一個介面,

shell腳本

如果有一系列經常使用的linux命令,你可以把它們存儲在一個文件腫。shenll可以讀取這個文件,並執行其中的命令。這樣的文件成為腳本文件。

執行shell腳本

要創建一個shell腳本,你要使用任何編輯器比如vi在文本文件中編寫他。

為了使用bash shell賴執行腳本magic,其命令是:bash magic或者./magic

echo命令:

echo 「this is an example of the echo command!」

屏幕上就會回顯「this is an example of the echo command!」

#符號

用於在shell腳本腫可以包含註解入口

echo 「hello」

#this is a comment line. this would not proce any output!

echo 「world!」

第二行是一個註解的例子。它將被shell忽略,而且不產生任何消息

變數:

可以在任何時間通過簡單的賦值來創建。

語法:

<variable name>-<value>

Linux 中的所有變數都被當作字元串

引用變數:

$符號用於引用一個變數的內容

variable1 = ${variable2}

讀入值給變數

在執行shell腳本時,shell還允許用戶直接從鍵盤讀入一個值給變數,還可以使用read命令來作。

$read fname

本地和全局shell變數

局部變數

當引用shell時,只有創建它的shell能夠知道變數的存在

全局變數

稱為子shell

shell中創建的變數局部於創建它的shell,除非使用export命令特別指出是全局的。

環境變數:

通過改變這些變數的值,用戶能夠定製此環境

一些環境變數的例子是HOME,PATH,PS1,PS2,LOGNAME,SHLVL,及SHELL

HOME變數

Linux系統中的每個用戶都有一個相關的稱作HOME的目錄

當一個用戶登錄後,進入相應的HOME的目錄

$ echo $HOME

PATH變數

包含一列用冒號定界的目錄的路徑名字,便於可執行程序的搜索。

PS1變數

PS1(Prompt String 1)變數包含了shell提示符,$符號

$ PS1 = 「HELLO>」

HELLO>

PS2變數

是為第二個提示符設置值的環境變數

LOGNAME變數

包含用戶的注冊名字

$echo 「${LOGNAME}」

SHLVL 變數

該變數包含當前工作的shell level

SHELL變數

環境變數存儲了用戶預設的shell

env命令

可用來查看所有的已移出的環境變數表和它們各自的值!

命令替換

在單個命令行中使用多個命令的另外一種方法(非Pipes)是通過命令替換

echo 「the data is `date`」

expr命令

用於求之算術表達式。該命令的輸出被送到標准輸出

$ expr 4 + 5

將在屏幕上顯示9

算術展開:

你可以在$((…)) 中括一個表達式,用下面的命令來計算它的值;

$((expression))

example1

編寫一個shell腳本用於計算呼叫中心未應答的詢問的數量。該腳本應該接受一天那所報告的詢問的總數和應答的詢問的數量,以便計算未應答的詢問的數量。

所有未應答的詢問總數=所有詢問的總數-應答的詢問的數量

<!--[if !supportLists]-->※ <!--[endif]-->※※※※※※※※※※※※※※※※※※※※※※※

條件執行

test和[]

求值表達式,並返回true(0)或false()

數值測試:

-eq 等於則為真

-ne 不等於則為真

-gt 大於則為真

-ge 大於等於則為真

-lt 小於則為真

-le 小於等於則為真

if構造

Linux shell提供了循環和判定的構造,可以在shell腳本中使用

算術測試

結合if構造,它可以用於測試變數的數字值

串測試

test命令也可以用於字元串

= 等於則為真

!= 不相等則為真

-z 字元串 長度為零則為真

-n 字元串 長度不為零則為真

文件測試

test命令也可以用於檢查文件的狀態

-e 文件存在則為真

-r 文件存在並且可讀則為真

-w 文件存在並且可寫則為真

-x 文件存在並且可執行則為真

-s 文件存在並且至少有一個字元則為真

-d 文件存在並且為目錄則為真

-f 文件存在並且為普通文件則為真

-c 文件存在並且為字元型文件則為真

-b 文件存在並且為塊特殊文件則為真

-a並且 -o或者 !非

exit命令

用於終止shell腳本的執行並返回到$提示符下

case 。。。esac

shell腳本中使用的這個構造依據變數的值而執行一組特定指令

當變數的值和其中的一個值匹配的時候,就執行寫在該值下的一組命令。

example3

迭代

while構造

while <條件>

do

<命令(s)>

done

只有條件為真的時候,才能執行do與done之間的命令

until構造

until循環構造的求值模式於while循環相反

until循環將繼續執行直到求值的條件為真的時候

for構造

for variable_name in <list_of_values>

do



done

for循環取一列值作為輸入並對循環中每個值執行循環

break和contineu命令

同其他語言中的用法

example4

控制進程的執行

請求後台處理

用於請求後台進程的符號是 (&)

$ wc tempfile &

[1] 2082

$ vi newfile

檢查後台進程

ps(進程狀態)命令為每個當前的活動的每個進程產生一行入口。

終止後台進程

可用kill,如下所示

kill 278

查看完成一個命令所花的時間

你可以使用time命令來查看一個命令從開始到結束所花的時間

time fine /etc –name 「passwd」 2> /dev/null /dev/null表明忽略錯誤信息。

管道的介紹

垂直條(|)是管道字元

它只是shell:「|」前面命令的輸出作為「|」之後命令的輸入發送

ls –l | more

用管道組合命令,功能強大

④ linux shell腳本,怎樣變數傳遞執行結果

1、shell一般都是放在/bin或者/user/bin目錄下,我們可以使用命令cat /etc/shells命令,查看當前linux系統可用的shell是什麼。

⑤ linux遠程登陸的shell腳本for循環無結果

我比較認同「ssh之後是遠程主機執行的命令
本地變數不起作用」這種說法
你的腳本之所以$aaa能回顯,是因為在本地定義了這個變數,但本地沒有定義$i這個變數,所以無法顯示變數值,把aaa="u1 u2"一塊塞<<ff.......ff這個內聯重定向數據中去。再試試看。

⑥ linux shell腳本執行命令詳解

在Linux下,如果你需要執行shell腳本,那麼應該使用那個命令呢?下面由我為大家整理了linux shell腳本執行命令的相關知識,希望對大家有幫助!

linux shell腳本執行

linux shell腳本執行方法一: 切換到shell腳本所在的目錄(此時,稱為工作目錄)執行shell腳本:

cd /data/shell

./hello.sh

./的意思是說在當前的工作目錄下執行hello.sh。如果不加上./,bash可能會響應找到不到hello.sh的錯誤信息。因為目前的工作目錄(/data/shell)可能不在執行程序默認的搜索路徑之列,也就是說,不在環境變數PASH的內容之中。查看PATH的內容可用 echo $PASH 命令。現在的/data/shell就不在環境變數PASH中的,所以必須加上./才可執行。

linux shell腳本執行方法二: 以絕對路徑的方式去執行bash shell腳本:

/data/shell/hello.sh

linux shell腳本執行方法三: 直接使用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路徑自然也好理解了啊。

linux shell腳本執行方法四: 在當前的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如何寫個可執行文件的循環執行腳本

腳本如下:

#!/bin/bash
for((i=2;i<=18;i++))
do
sed-i's/srfn=ny-89-.*-sr/srfn=ny-89-0'"$i"'-sr/g'sps
sed-i's/sfn=00.*prn/sfn=00'"$i"'.prn/g'sps
aas
done

⑧ linux怎樣一次運行多個shell腳本

inux 下shell腳本執行多個命令的方法x0dx0a1.每個命令之間用;隔開x0dx0a說明:各命令的執行給果,不會影響其它命令的執行。換句話說,各個命令都會執行,但不保證每個命令都執行成功。x0dx0a2.每個命令之間用&&隔開x0dx0a說明:若前面的命令執行成功,才會去執行後面的命令。這樣可以保證所有的命令執行完畢後,執行過程都是成功的。x0dx0a3.每個命令之間用||隔開x0dx0a說明:||是或的意思,只有前面的命令執行失敗後才去執行下一條命令,直到執行成功一條命令為止

⑨ Linux 多種提交作業的指令

          1、前台進程就是用戶使用的有控制終端的進程,一旦這個終端關閉,這個進程也隨之消失。

           2、後台進程也叫守護進程,是運行在後台的一種特殊進程,不受終端控制。

           3、後台程序基本上不和用戶交互,優先順序別稍微低一點 ; 前台的程序和用戶交互,需要較高的響應速度,優先順序別稍微高一點。

方法一 :切換到shell腳本所在的目錄(此時,稱為工作目錄)執行shell腳本:./test.sh

方法二: 以絕對路徑的方式去執行bash shell腳本:/home/user1/test.sh

方法三: 直接使用bash 或sh 來執行bash shell腳本:sh test.sh bash test.sh。該方法執行腳本,可以不必事先設定shell的執行許可權,甚至都不用寫shell文件中的第一行(指定bash路徑)。因為方法三是將test.sh作為參數傳給sh(bash)命令來執行的。這時不是test.sh自己來執行,而是被人家調用執行,所以不要執行許可權

方法四: 在當前的shell環境中執行bash shell腳本: . test.sh  source test.sh

幾種方法的對比:

前三種方法執行shell腳本時都是在當前shell(稱為父shell)開啟一個子shell環境,此shell腳本就在這個子shell環境中執行。shell腳本執行完後子shell環境隨即關閉,然後又回到父shell中。而方法四則是在當前shell中執行的 。

可以使用nohup命令忽略所有掛斷(SIGHUP)信號,來實現在終端關閉後,命令不掛斷地運行,nohup就是不掛起的意思( no hang up)。

⑩ linux下如何寫個SHELL腳本,每天執行這么幾句命令:

1、登錄CentOS7系統,打開終端,輸入命令env shell列印出shell進程的環境變數。