一些簡單的shell指令碼
阿新 • • 發佈:2018-12-25
1.程式設計第一課,輸出hello world
#!/bin/bash
echo "Hello world"
2.自動清空日誌
#!/bin/bash
cd /var/log
>messages
echo "Logs cleaned up..."
當然這個不是很完善,如果我們不是root使用者呢,下面給出一個完善的指令碼
#!/bin/bash LOG_DIR=/var/log ROOT_UID=0 if [ "$UID" -ne "$ROOT_UID" ];then echo "Error:you should be root to run this script!" exit 1 fi cd $LOG_DIR || { echo "Cannot access to directory." exit 1 } cat /dev/null > messages && { echo "Logs cleaned up..." exit 0 } echo "logs cleaned failed..."\ exit 1
執行結果
3.啟動並開機自啟動httpd的指令碼
#!/bin/bash
yum install httpd -y >/dev/null
systemctl start httpd
systemctl enable httpd
firewall-cmd --add-service=http >/dev/null
firewall-cmd --reload >/dev/null
echo "all done"
4.面試題
指令碼如下
#!/bin/bash
username=`whoami`
然後執行
sh test.sh echo $username
問題:echo $username命令的輸出結果是什麼?
a)當前使用者
b)root
c)空(無輸出)
答案是c,這是因為sh的執行方式,並不會返還值到父shell,所以輸出為空,我們試著用source執行