linuxshellfor循環語句
1、利用$@, $#, $*參數或shift移位參數進行循環
2、例1
#!/bin/sh
while [ $# -gt 0 ]; do
echo $1
shift;
done
3、例2
#!/bin/sh
until (($#==0)); do
echo $1
shift;
done
4、例3
#!/bin/sh
for x in $*;do
echo $x
done
5、例4
#!/bin/sh
for x in $@;do
echo $x
done
2. linux shell腳本下使用for循環 輸出等邊三角形 過任務的 求大神指點
#!/bin/bash
read -p "please input the longs:" long
for((i=1;i<=$long;i++))
do
for((j=$long;j>i;j--))
do
echo -n " "
done
for m in `seq 1 $i`
do
echo -n "+"
done
for((n=1;n<i;n++))
do
echo -n "+"
done
echo ""
done
long為你自己輸入的邊長,如果有規定長度,把$long改成數就行
3. linux shell for循環怎麼寫
for I in list; do
statement
done
I 是變數
list是一個表格 如你可以使用一串用括弧括起來的數,
也可以使用 命令替換 `seq 1 15` 這個命令忘記了,, 有可能是 `seq 15`
[1..15]
表示1-15的數,,
statement 即要執行的語句
for I in [1..10]; do
echo $I
done
這段for循環的含義就是顯示從1~10的所有數字
4. linux shell for 如何循環兩個或者多個變數
標準的多個循環嵌套啊,各類程序語言包括shell都這樣的。
5. Linux shell 問題 求解
這是表示foo分別取值三次,並且分別列印出 三個值來,具體其他知識拓展如下:
for 命令
重復執行一系列命令在編程中很常見。通常你需要重復一組命令直至達到某個特定條件,比如處理某個目錄下的所有文件、系統上的所有用戶或是某個文本文件中的所有行。
bash shell提供了 for 命令,允許你創建一個遍歷一系列值的循環。每次迭代都使用其中一個值來執行已定義好的一組命令。下面是bash shell中 for 命令的基本格式。
for var in list
do
commands
done
在 list 參數中,你需要提供迭代中要用到的一系列值。可以通過幾種不同的方法指定列表中的值。
在每次迭代中,變數 var 會包含列表中的當前值。第一次迭代會使用列表中的第一個值,第二次迭代使用第二個值,以此類推,直到列表中的所有值都過一遍。在 do 和 done 語句之間輸入的命令可以是一條或多條標準的bash shell命令。在這些命令中,$var 變數包含著這次迭代對應的當前列表項中的值。
也可以將 do 語句和 for 語句放在同一行,但必須用分號將其同列表中的值分開: for var in list; do 。
1.1.讀取列表中的值
for 命令最基本的用法就是遍歷 for 命令自身所定義的一系列值。
[ceshi@jerry jghml]$ cat test1.sh
#!/bin/bash
# basic for command
for test in Alabama Alaska Arizona Arknsas California Colorado
do
echo The next state is $test
done
6. 關於linux shell 循環語句的問題
#!/bin/sh
read -p "Input an integer: " num
len=`expr length $num` #計算整數的長度
startPos=1
sum=0
FirstLetter=`expr substr $num 1 1`
[ "${FirstLetter}" = "-" ] && startPos=2 #負數的話從第二位開始輸出
while [ $startPos -le $len ]
do
digit=`expr substr $num $startPos 1` #分別取得每一位
echo $digit
let sum+=$digit #累加計算
let startPos+=1
done
echo "sum=$sum"
exit 0
# ===================================
# 上面的推薦答案對於負數有問題,並且會列印很多sum=xx(應該是循環結束才列印的)。
# 為了通用性,我基本都使用符合POSIX標準的語法,沒有使用諸如 ${#num}, ${x:pos:lenght}等bash中的特有語法。
7. Linux Shell:Shell循環語句
摘要: Linux , Shell
Shell中常用循環有 for , while
for循環只能用於 固定次數 的循環,因此不能無限循環和用於一些在後台守護進程一直運行的程序,語法語句如下
也可以寫成一行,用 ; 分隔
取值列表內元素以空格隔開,如果元素帶有空格則用引號包裹起來,例子如下
輸出如下,可見循環到最後退出循環,引用變數依舊是最後一個取值列表元素
一行的寫法
Shell的for循環也可以採用C語言的寫法,注意是 雙括弧 ,用 分號; 間隔
一個簡單例子
while循環語句結合條件測試使用,語法如下
舉一個例子
在循環中使用條件測試實現復雜的邏輯,例如
也可以使用&&,||一行完成,省去if,fi
Shell的continue,break語句和Python一樣,例子如下
break語句下輸出4
continue語句下輸出4 6 7 8 9 10
常見結合使用的循環體有 序列 , 數組 , 命令行傳參 , 文件目錄和文件
序列通過 seq 命令或者 {begin..end..step} 符號進行定義:
結合for循環使用案例
在Shell中使用小括弧 () 定義數組,數組遍歷使用 [@] 符號,防止元素有空格用雙引號包起來,,例子如下
命令行傳參遍歷使用固定符號 $@ ,如果參數中有空格,用雙引號括起來,例子如下
文件遍歷使用 ls 命令,可以指定目錄,以及通配符匹配
一個雙重循環實現,注意 expr表達式中乘號要加轉移符
(2)將某目錄下大小大於閾值的文件移動到另一個文件
遍歷循環一個目錄,使用awk語法獲得文件大小,將100m以上的文件移動到另一個文件夾
(2)指定開始日期和結束日期完成一個跑批任務
指定一個開始時間和結束時間,while從開始日期一直自增到結束日期循環結束,通過 date -d -01-01 1day' +%Y-%m-%d 自增一天
8. linux中shell編程for循環問題
我試了一下是能行的。
你寫好了過後在終端執行有兩種方式:
#sh test.sh
or
#./test.sh //需要修改許可權,讓其能夠執行,chmod 777 test.sh
9. Linux Shell awk中怎麼調用數組和for循環
echo|awk'
{
array[1]=1
array[2]=2
array[3]=3
array[4]=4
array[5]=5
for(i=1;i<=5;++i){
printarray[i]
}
}'
10. linux遠程登陸的shell腳本for循環無結果
我比較認同「ssh之後是遠程主機執行的命令
本地變數不起作用」這種說法
你的腳本之所以$aaa能回顯,是因為在本地定義了這個變數,但本地沒有定義$i這個變數,所以無法顯示變數值,把aaa="u1 u2"一塊塞<<ff.......ff這個內聯重定向數據中去。再試試看。