1. 程式人生 > >一些簡單的shell指令碼

一些簡單的shell指令碼

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執行