作者 主題: 請教簡單的bash shell  (閱讀 4632 次)

0 會員 與 1 訪客 正在閱讀本文。

yes298

  • 活潑的大學生
  • ***
  • 文章數: 380
    • 檢視個人資料
請教簡單的bash shell
« 於: 2008-01-09 16:40 »
小弟Linux初哥, 請教各位學長 如何將以下變為bash shell:

if /tmp/a此目錄不存在
   執行command 1 && 執行command 2
end if

我只會[ -d /tmp/a ] || command 1
在||之后只能執一個command, 所即使用[ -d /tmp/a ] || command 1 && command 2
不論[ -d /tmp/a ]結果如何, command 2都會執行, 所以我想用if ... end if 包圍著.


hikohan

  • 俺是博士!
  • *****
  • 文章數: 1288
    • 檢視個人資料
lifeIsFunWithPHP.

smeeis

  • 懷疑的國中生
  • **
  • 文章數: 62
    • 檢視個人資料
回覆: 請教簡單的bash shell
« 回覆 #2 於: 2008-01-09 17:49 »
if [ ! -d /tmp/a ]
then
cmd1 && cmd2
fi

yes298

  • 活潑的大學生
  • ***
  • 文章數: 380
    • 檢視個人資料
回覆: 請教簡單的bash shell
« 回覆 #3 於: 2008-01-09 18:51 »
原來感嘆號放在[]里面 ...

感謝幫忙  ...


要好好學學shell才行 ...

不知哪個網站有較詳細的教學 ...

creative1223

  • 懷疑的國中生
  • **
  • 文章數: 69
    • 檢視個人資料
回覆: 請教簡單的bash shell
« 回覆 #4 於: 2008-01-28 15:49 »
中括號裡面…前後還要有空格才不會錯

harrier

  • 榮譽博士
  • 俺是博士!
  • *****
  • 文章數: 1856
  • 性別: 男
    • 檢視個人資料
    • 國屬武裝兵
回覆: 請教簡單的bash shell
« 回覆 #5 於: 2008-01-28 16:31 »
原來感嘆號放在[]里面 ...
感謝幫忙  ...
要好好學學shell才行 ...
不知哪個網站有較詳細的教學 ...

每個發行版的 /etc/rc.d/
裡面都是範例。
看到什麼學什麼。
...90Net(90:1200/1203),GameNET(99:700/707),ALLNet(92:9200/3111),InfoNet(30:100/103)..MaximusCBCS(浮懷),AirNet,TenderNet,StormNet,FidoNet...
<<- www.nas.vg ->>

netman

  • 管理員
  • 俺是博士!
  • *****
  • 文章數: 17478
    • 檢視個人資料
    • http://www.study-area.org
回覆: 請教簡單的bash shell
« 回覆 #6 於: 2008-01-28 23:46 »
[ -d /tmp/a ] || { comd1; comd2; }

shen36930

  • 懷疑的國中生
  • **
  • 文章數: 64
    • 檢視個人資料
回覆: 請教簡單的bash shell
« 回覆 #7 於: 2008-03-20 13:41 »
想請教一個問題
我用find將檔案群(分散在各個資料夾內的trash)找出來ex:trash
#!/bin/bash
find /home |grep trash
if [ -e trash ] && [ -f trash ]; then
rm logical
fi

卻無法將找出來的檔案刪除

ohmygod

  • 活潑的大學生
  • ***
  • 文章數: 210
    • 檢視個人資料
回覆: 請教簡單的bash shell
« 回覆 #8 於: 2008-03-20 15:12 »
代碼: [選擇]
for rmfile in `find /home -type f`
do
    if [ ${rmfile##/*/} = trash ];then
         rm $rmfile
    fi
done

vantien

  • 憂鬱的高中生
  • ***
  • 文章數: 118
    • 檢視個人資料
回覆: 請教簡單的bash shell
« 回覆 #9 於: 2008-03-20 17:17 »
代碼: [選擇]
find /home -type f -name trash -print

先看找出來的是不是要的結果, 確認後再執行刪除

代碼: [選擇]
find /home -type f -name trash -exec rm -rf {} \;

shen36930

  • 懷疑的國中生
  • **
  • 文章數: 64
    • 檢視個人資料
回覆: 請教簡單的bash shell
« 回覆 #10 於: 2008-03-21 17:34 »
謝謝  ohmygod 與vantien 的回覆

發現vantien 的
find /home -type f -name trash -exec rm -rf {} \;
可以簡單解決我的問題
並做註解給看不懂得(大概只有我吧)
-type後接(類型)
-name後接(檔案名稱)
-exec後接(執行命令)