shell 陣列 迴圈

2021-08-01 23:43:51 字數 1552 閱讀 1195

#!/bin/bash

array=(1 2 3 4 5) #以括號括起為陣列 中間是空格

for num in "$" #以這種for列印陣列

do echo $num

done

***[0]='a' #第二種定義陣列的方法

***[1]='b'

***[2]='c'

for ((i=0; i<$;i++)); do # $ 返回陣列的大小

echo $ #$ $]} 這兩種都可以 通過下標列印陣列 陣列從0開始

done

#對目錄處理的一些技巧

***=(`ls`) # ``這裡可以包含一些shell命令(~這個鍵) 這個配合管道命令是很強大的 grep sed

for file in "$" #用第二種for迴圈也是可以的

do echo $file

done

#sh相加字串是非常方便的 直接放到後面就可以了

#單引號和雙引號是有區別的 單引號只能放字串 雙引號裡面可以解釋變數

initpath='/a'

secpath='/b'

thrpath='c'

path=$'/'

path=$$'/'$

#對數字的支援可能就比較煩了

***=2

xx=$-1

echo $xx #輸出:2-1

echo $(($***-1)) #如果是數字運算 外面加上 $(( )) 才會得到正確的結果

let "x=***+(xx*2)" #let 相當於(()) 這個比較好用

echo $x

x=$((***+(xx*2))) #2種方式相同 如果是數字處理可以不帶$ 字串必須要帶$ 或 ${}

echo $x

#declare 可以定義變數的屬性

declare -i i=1 #定義乙個int的變數

declare -i sum=0

while ((i<10)); do #while迴圈

let sum+=i

let ++i

done

echo $sum

while read line; do

echo $line

break #shell是支援 break 和 countinue的

done

#if 語句 判斷數字的寫法 [ ] 兩邊都要有空格 -ne 不相等的意思

這裡比較的是數字 所以 $(($filesnum-1))這個就要這樣寫 $(($-1)) 都可以

if [ "$j" -ne "$(($i-1))" ]||[ "$j" -ne "$(($filesnum-1))" ]; then

else

fi#比較字串 是否相等

if [ "$" != "$" ]; then

elif [ command ]; then

fi#判斷目錄是否存在

if [ ! -d "$" ]; then

mkdir $buildpath

fi

shell中迴圈陣列

定義乙個陣列,用小括號括起來,內容用空格分割即可。迴圈陣列時候乙個關鍵點是要在陣列後面增加 符號,表示獲取陣列全部內容,如果不加,則只能獲取到第乙個元素。也可以通過下標的方式獲取陣列元素 array index bin bash ips 192.168.149.160 192.168.149.161...

shell 死迴圈if判斷 shell 死迴圈

例1 執行指令碼後會自動載入firefox瀏覽器,並開啟指定網頁。如果使用者關閉firefox,指令碼會再次自動重新開啟firefox。如需結束迴圈,中止t2.sh程序即可。注意不要同時執行兩個t1.sh指令碼,否則 若事先不知道指令碼名,也可以通過類似於 pstree grep firefox 的...

shell命令,shell迴圈,shell引數

touch hello.sh 建立乙個檔案 vi hello.sh 編輯文字 bin bash 指定bash解析器,centos預設的是bash解析器 echo helloworld echo helloworld 這兩句話效果相同,不過為了符合規範用第二種 執行指令碼,首先賦予指令碼最大許可權 c...