標籤:style blog http ar sp 檔案 資料 on art
linux 下shell 編寫指令碼:
1.程式結構練習:編寫一個指令碼,給定一個正整數,計算出這個數所有位的數字之和。
例如:程式給定輸入123,那麼應該返回1+2+3=6。
2.程式結構練習:編寫一個指令碼,給定一個正整數,反序輸出這個這個數。
例如:程式輸入123,那麼應該輸出321.
3.Linux命令+shell編程:編寫一個程式,實現定時檔案備份的功能。
要求:
1.備份某個目錄下的所有檔案
2.對備份檔案進行壓縮
3.產生合理的記錄檔
4.Shell下的gui(libnotify-bin)編程
http://blog.mpathirage.com/2009/09/12/using-libnotify-in-ubuntu-9-04/
要求:
實現定時提醒功能,通過命令列參數設定提示時間和提醒內容
5.Shell文本處理功能(sed和awk)
1.開啟sname和smark兩個檔案,查看檔案內容。
2.從sname中提取學生姓名(cut),顯示如下:
zhangsan
lisi
wangwu
maliu
3.合并兩個檔案的內容(join),輸出如下:
11 zhangsan 56
12 lisi 78
13 wangwu 98
14 maliu 87
4.小寫字母轉換成大寫字母(tr)
5.查看inventory檔案,過濾到中間一行,得到第一行和第三行的資料。效果如下:
cacke 10
Pen 12
floppy 5
6.查看teaormilk檔案,將每一行中的tea替換成milk。(sed)結果如下:
India’s milk is good.
milk Red-Lable is good.
milk is better than the coffee.
7.查看personame檔案,僅輸出存在一行的資料(uniq)。結果如下:
Hello I am vivek
12333
welcome
to
sai computer academy a’bad.
what I still remember that name
oaky!how are u ,luser
what still I remember that name
8.查看demo-file檔案,要求僅僅輸出該行中含有too的行(grep)。結果如下:
cartoons are good
especially toon like tom (cat)
I too
請高手們把程式給我寫出來,會幾個就寫幾個,謝謝。
最佳答案 第一題
#!/bin/bash
declare -i a=$1
declare -i sum=0
while [ "$a" -ne "0" ]
do
sum=$sum+$a%10
a=$a/10
done
echo "The result is $sum"
第二題
#!/bin/bash
declare -i a=$1
while [ $a -ne 0 ]
do
echo -n "$(($a%10))"
a=$a/10
done
echo
第三題
指令碼命名為backupdaily.sh
在/etc/crontab裡加入一行
0 2 * * * root ~/backup/backupdaily.sh
#!/bin/bash
day=`date +%Y%m%d`
tar -czf ~/backup/"$day".tar.gz ~/anydir
echo "$day: tar -czf ~/backup/$day.tar.gz ~/anydir" >> ~/backup/backuplog
第四題
以前沒用過,試了下,manpage裡就那幾個參數
#例如提示“message” 持續三秒鐘:
#notify-send "message" -t 3000
第五題
大哥你也不給sname和smark的格式,欄位位置我就瞎猜啦
1.#cat sname ;cat smark
2.#cat sname | cut -d ‘ ‘ -f 2
3.#join -1 1 sname -2 1 smark
4.#cat sname smark | tr "[a-z]" "[A-Z]"
5 #cat inventory | cut -d ‘ ‘ -f 1,3
6#cat teaormilk | sed ‘s/tea/milk/g‘
7#cat personame | sort | uniq -u
8#cat demo-file | grep "too"
linux 下shell 編寫指令碼