作者sean72 (.)
看板Linux
標題[問題] shell script
時間Mon May 27 14:37:04 2013
看到下面一段shell
能猜到他是什麼意思 但是不能行行了解
1想請問這個shell的作用
2想請問這些shell的語法 應該要去哪邊查找?
謝謝大家幫忙回答
#!/bin/bash
#這邊說 如果沒有$1沒有東西 那麼就顯示echo的內容 (按照執行結果猜測)
#但是我不了解-z的意思 也不知道該如何用什麼關鍵字去網路查找
if [ -z "$1" ]; then
echo usage: $0 directory
exit
fi
#把$1的內容打包成為一個名為 watchman的tgz檔案
#下面那個OF變數 更是眼花撩亂到我不知道在幹嘛 (跟第一次看到perl的感覺一樣)
SRCD=$1
TGTD="/home/shsu/Desktop/watchman"
OF=home-$(date +%Y%m%d).tgz
mkdir $TGTD
tar -czf $TGTD$OF $SRCD
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 172.249.127.163
1F:推 stimim:man bash 05/27 15:01
4F:推 Hevak:$1是傳給script的第一個參數,例如你在命令列執行 foo.sh a 05/27 19:04
5F:→ Hevak:,則a就是$1 05/27 19:04
6F:→ Hevak:然後SRCD=、TGTD=和OF=分別是指定值給這些變數 05/27 19:05
7F:→ Hevak:以這個script為例,SRCD會得到$1的值(在bash下以$提取變數 05/27 19:05
8F:→ Hevak:,而TGTD會得到目標路徑,OF會得到一個包含日期的檔名 05/27 19:06
9F:→ Hevak:最後他創建目標資料夾,再把SRCD的東西打包成TGTD下的home- 05/27 19:07
10F:→ Hevak:時間.tgz 05/27 19:07
11F:→ Hevak:$()的寫法是指取得()中的回傳值 05/27 19:08
12F:推 kdjf:樓上是指程式從stdout輸出的內容 05/27 21:04
13F:推 Hevak:對,stdout,剛剛講錯orz 05/27 21:20