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

linux如何寫循環執行腳本

發布時間: 2022-10-04 04:39:19

❶ linux怎麼添加一個開機無限循環的sh腳本

這是非常簡單實現的事情,把你的腳本寫成一個shell文件,例如:auto.sh,在目錄/root/下.
在rc.local這樣寫
/root/auto.sh &

必須加後面的 & ,意思是後台執行,繼續執行後面的語句.......

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

1、for FILE in $(ls); do [COMMAND]; done
2、for a in {1..100}; do echo $RANDOM; done
3、for (( c=1; c<=5; c++ )); do echo $RANDOM; done
4、for ((c=1; c<21; c+=2)); do echo "Welcome $c times" ; done
5、for line in $(cat user.txt); do getent shadow $line; done
6、for FILE in $(cat file); do tar zcf $FILE.tar.gz $FILE;rm -rf $FILE; done
7、# awk計算所有行所有區域的總和
awk '{for (i=1; i<=NF; i++) s=s+$i}; END{print s}'

❸ linux的for循環的寫法

Linux下使用while…;do done語句來寫循環語句,其實也非常簡單,比如說,我們要寫一個循環5次的命令。

可以這樣來寫:

I=1
While [$I<=5];do
語句…
Done
I=$(($I+1))

其中,I=$(($I+1))說明我們這個循環每次遞增的數為1,也就是在I的基礎上加1,這樣就形成了循環了。

====================================
腳本1:
#!/bin/sh
for loop in 1 2 3 4 5
do
echo $loop
done

腳本2:
#!/bin/sh
for loop in "orange red blue grey"
do
echo $loop
done

有了""就是字元串,只循環一次
第二個循環的循環變數會依次為orange red blue grey中的每一個。

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

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

❺ Linux取出100個文件怎麼寫腳本依次執行


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

❻ linux 腳本循環

>moosewoler,你好,我的問題其實主要集中在這里:
>linux中的參數是相當於C語言中的宏還是變數呢.
shell腳本的變數會根據使用情況自動變化,有的時候行為像宏,有的時候像變數

>如果是宏的話就會完全匹配.例如: 我想用到一堆變數: >iData21,iData22,iData23....iData99
>這個時候我定義 iDataX 然後讓 X =21~99 循環,這樣可以嗎?如果是C語言是不可以的,因為21~99並非完整的一個變數,而是變數的一部分.
是可以這樣做的,將兩個變數聯合起來用就可以了,然後exec出去。
給你個鏈接《bash新手指南》,很短,很容易入門
http://www.bsdmap.com/manuals/bash_guide/index.html

使用說明:
腳本枚舉目錄中所有文件,並調用LtoT.exe來處理之。
文件名嚴格以X_nnnn.DAT命名
其中
X取值為 「C」或者「Y」
nnnn取值為 4位數字
「_」和「.」作為awk使用的分割符一定要存在,否則會出錯。

可能存在的問題:
因為LtoT.exe和sdram422bmp.exe也被放在了當前目錄下,所以這兩個文件也會被腳本處理,也就是說會出現如下兩個命令行
./LtoT.exe LtoT.exe LtoT_tile.exe 16 2048 LtoT.exe
./LtoT.exe sdram422bmp.exe sdram422bmp_tile.exe 16 2048 sdram422bmp.exe
不過因為第2個循環的條件檢驗夠強,所以不會影響到第2個循環的輸出。

腳本全文如下:
#! /bin/sh

BIN1="./LtoT.exe"
BIN2="./sdram422bmp.exe"

#枚舉當前目錄下的文件名,並生成參數列表
for FILENAME in `ls` ;do
if [ "$FILENAME" != "a" ]; then
flag=`echo $FILENAME | grep tile`
flag=`echo $?`
if [ "$flag" != "0" ]; then
tmpARG1=`echo $FILENAME`
tmpARG2=`echo $FILENAME | awk 'BEGIN { FS="."} {print $1 "_tile." $2}'`
tmpARG3="16"
tmpARG4="2048"
tmpARG5=`echo $FILENAME | awk 'BEGIN { FS="_"} {print $1}'`
#執行之
`$BIN $tmpARG1 $tmpARG2 $tmpARG3 $tmpARG4 $tmpARG5`
fi
fi
done

for FILENAME in `ls | grep "^Y.*tile"` ;do
tmpARG1="2048"
tmpARG2="16"
tmpARG3="16"
tmpARG4=$FILENAME
tmpARG5=`echo $FILENAME | sed 's/^Y/C/'`
tmpARG6=`echo $FILENAME | awk 'BEGIN { FS="_" } {print "result_"$2".bmp"}'`

`$BIN $tmpARG1 $tmpARG2 $tmpARG3 $tmpARG4 $tmpARG5 $tmpARG6`
done

模擬顯示結果(我只是ECHO出來,_tile文件提前建立好了,你可以不必):
moose@iMove:~/tmp$ ls -l
total 4
-rwxr--r-- 1 moose moose 978 02-19 20:19 a
-rw-r--r-- 1 moose moose 0 02-19 19:40 C_0026.DAT
-rw-r--r-- 1 moose moose 0 02-19 20:00 C_0026_tile.DAT
-rw-r--r-- 1 moose moose 0 02-19 19:40 Y_0039.DAT
-rw-r--r-- 1 moose moose 0 02-19 20:00 Y_0039_tile.DAT
moose@iMove:~/tmp$ ./a
./LtoT.exe C_0026.DAT C_0026_tile.DAT 16 2048 C
./LtoT.exe Y_0039.DAT Y_0039_tile.DAT 16 2048 Y
./sdram422bmp.exe 2048 16 16 Y_0039_tile.DAT C_0039_tile.DAT result_0039.bmp

❼ linux下如何讓腳本裡面的幾條命令重復執行

如何重復執行?
使用循環語句可以控制循環次數
當然你可以把那幾條命令打包成一個函數
可以反復執行

也可以循環控制重復執行shell腳本

當然也可以定時執行

❽ linux腳本 循環語句

for i in $(seq 500)
do
.....
done

p.s.樓上你忘了自增了

❾ linux腳本,循環檢測程序,按照條件執行

#!/bin/bash

while :
do
ps aux |grep -v firefox >/dev/null
if [ $? -eq 0 ];then
firefox &
elif [ $? -ge 2 ];then
killall firefox
fi
sleep 300
done

❿ 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