#!/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...