[問題] shell script

看板Linux作者 (.)時間11年前 (2013/05/27 14:37), 編輯推噓5(508)
留言13則, 4人參與, 最新討論串2/3 (看更多)
看到下面一段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

05/27 15:01, , 1F
man bash
05/27 15:01, 1F

05/27 16:20, , 3F
05/27 16:20, 3F

05/27 19:04, , 4F
$1是傳給script的第一個參數,例如你在命令列執行 foo.sh a
05/27 19:04, 4F

05/27 19:04, , 5F
,則a就是$1
05/27 19:04, 5F

05/27 19:05, , 6F
然後SRCD=、TGTD=和OF=分別是指定值給這些變數
05/27 19:05, 6F

05/27 19:05, , 7F
以這個script為例,SRCD會得到$1的值(在bash下以$提取變數
05/27 19:05, 7F

05/27 19:06, , 8F
,而TGTD會得到目標路徑,OF會得到一個包含日期的檔名
05/27 19:06, 8F

05/27 19:07, , 9F
最後他創建目標資料夾,再把SRCD的東西打包成TGTD下的home-
05/27 19:07, 9F

05/27 19:07, , 10F
時間.tgz
05/27 19:07, 10F

05/27 19:08, , 11F
$()的寫法是指取得()中的回傳值
05/27 19:08, 11F

05/27 21:04, , 12F
樓上是指程式從stdout輸出的內容
05/27 21:04, 12F

05/27 21:20, , 13F
對,stdout,剛剛講錯orz
05/27 21:20, 13F
文章代碼(AID): #1HelyJoo (Linux)
討論串 (同標題文章)
文章代碼(AID): #1HelyJoo (Linux)