學習shell基礎命令

學習shell基礎命令
''
單引裏面寫什麼就是什麼shell

""
雙引裏面寫什麼就是什麼(若是有變量會把變量的量顯示出來)bash

``
與下面的$()同樣,優先執行完得出結果
$()ide

測試
[] 中括號裏面都要有空格學習

-f 測試是否爲文件
例: [ -f /etc/passwd ] && echo '真的是個文件' //成功的
[ -f /home ] && echo '真的是個文件' // 失敗的測試

-d 測試是否爲目錄
例: [ -d /etc/passwd ] && echo '真的是個文件夾' // 失敗的
[ -d /home] && echo '真的是個文件夾' //成功的內存

-e 測試是否存在
例: [ -e /mnt/cdrom ] && echo '是的存在' it

&& 邏輯與( 前面若是能執行成功則後面接着執行 )
|| 邏輯或( 前面若是能執行成功則後面的不執行,前面執行不成功則後面接着執行 )class

-r 測試有讀的權限嗎
[ -r /etc/passwd ] && echo '是的有讀取的權限'awk

-w 測試有寫的權限嗎基礎

-x 測試有執行的權限嗎

比對測試

-eq 測試是否爲相等
例:
a=100
b=98
[ $a -eq $b ] && echo '是的它們是相等的'
b=100
[ $a -eq $b ] && echo '是的它們是相等的'

-ne 測試是否爲不相等

-gt 測試是否爲大於

-lt 測試是否爲小於

判斷if

單分支的if
if [ 條件測試 ]
then
do
fi

例子:
cat > for-free.sh <<end
#!/bin/bash
a=$(free -m |grep -i mem |awk '{print $4}')
if [ $a -gt 100 ]
then
echo "如今可用內存爲$a ,夠你用"
fi
end
chmod +x for-free.sh
./for-free.sh

雙分支的if
if [ 條件測試 ]
then
do
else
do
fi

例子:
cat >>for-5.sh <<end
a=$(free -m |grep -i mem |awk '{print $4}')
if [ $a -gt 100 ]
then
echo "如今可用內存爲$a ,夠你用"
else
echo "如今可用內存爲$a ,不夠你用"
fi
end
chmod +x for-5.sh
./for-5.sh

cat >for-sdd.sh <<end
#!/bin/bash
echo "這是一個判斷/dev/sdd磁盤使用量的腳本"
pan=$(df -Th |grep /dev/sdd |awk '{print $5}' |cut -d G -f 1 )
if [ $a -gt 7 ]
then
echo 「如今的/dev/sdd使用量爲 $pan G,說明磁盤還夠用」
else
echo 「如今的/dev/sdd使用量爲 $panG,說明磁盤不夠用」
fi
end

chmod +x for-sdd.sh
./for-sdd.sh

多分支的if
if [ 條件測試 ]
then
do
elif [ 條件測試 ]
do
elif [ 條件測試 ]
do
elif [ 條件測試 ]
do
elif [ 條件測試 ]
do
elif [ 條件測試 ]
do
elif [ 條件測試 ]
do
else
do
fi

例:cat >for-number.sh <<end#!/bin/bashecho '這是一個查當作績等級的腳本'read -p '請輸入你所得的成績:' intif [ $int -ge 90 -a $int -le 100 ]thenecho '你的成績等級爲優等生'elif [ $int -ge 80 -a $int -le 89 ]thenecho '你的成績等級爲次優等生'elif [ $int -ge 70 -a $int -le 79 ]thenecho '你的成績等級良等生'elif [ $int -ge 60 -a $int -le 69 ]thenecho '你的成績等級爲及格生'elseecho '你的成績系統斷定爲補考'fiendchmod +x for-number.sh./for-number.sh

相關文章
相關標籤/搜索