Re: [問題] 如何使用shell script開啟檔案,並執行쀠…

看板Linux作者 (晴矢)時間17年前 (2007/08/15 20:06), 編輯推噓0(006)
留言6則, 1人參與, 最新討論串1/1
※ 引述《mdchiou (晴矢)》之銘言: : ※ 引述《iswearwang (^_^)》之銘言: : : 我這邊的檔案有好幾百個...而且命令都是在註解裡面... : : 比如a.txt裡的內容為 /* : : #>ls : : */ : : 每個檔案裡面都有各自的命令...我想要把每個檔案裡的命令擷取出來,存成一個list : : 在從這個list裡面....一個一個去執行這些命令 : : 因為數量眾多...所以才要想寫一個script : : 謝謝 : 如果註解的開頭確定是 #> : 那麼我會用如下的方法 : cat *.txt | grep "#>" | sed s/#\>// | out_script.sh 不好意思,這裏打錯了, | out_script.sh 要改成 > out_script.sh 既然錯了,就順便簡單說一下 | 與 > 好了。 | 是管線,也就是把輸出(通常是顯示器) 做為下一個程式的輸入, 所以 | 的後面至少要接一個指令或是程式。 > 是輸出轉向,把原來要輸出的東西(通常還是顯示器)轉到別的地方去。 可以是設備,例如印表機lpr。或是黑洞(就是丟進去就消失了) /dev/null   也可以是一個檔案,例如本範例 out_script.sh 。 >>如果是丟到檔案去,又不想把原來的資料蓋掉,那就給>>表示附加到原有的檔案去。 啊如果我很貪心的想要把原來的東西一邊秀到顯示器一邊還要存檔怎辦: 有二個方法啦: 第一個方法就 先執行 cat *.txt | grep "#>" | sed s/#\>// 再執行 cat *.txt | grep "#>" | sed s/#\>// > out_script.sh 第二個方法就 cat *.txt | grep "#>" | sed s/#\>// | tee out_script.sh 這個 tee 就讀做"T",把它想成是T型管,把本來的東西偷偷分流到out_script.sh 以上 希望唬這麼多能夠彌補那個打錯的地方… : 如果運氣好,out_script.sh 應該會是你要的啦… : 那麼你就執行 out_script.sh 就好了 : 執行方式有二:chmod 或是 sh out_script.sh : 以上~ -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.116.77.91

08/15 20:08, , 1F
T 型管... hahaha~~ 這個說法真有趣 XD
08/15 20:08, 1F

08/15 20:10, , 2F
那我也來說一下, tee 在一般使用者模式想用要 sudo 寫入
08/15 20:10, 2F

08/15 20:10, , 3F
到其他權限的時候很有用,很難說明白,舉個例來說
08/15 20:10, 3F

08/15 20:11, , 4F
$ sudo echo "meow" > /etc/dog 這樣會寫入失敗
08/15 20:11, 4F

08/15 20:13, , 5F
$ sudo echo "meow" | sudo tee /etc/dog 這樣就可以了!
08/15 20:13, 5F

08/15 20:14, , 6F
另外 tee -a 就像是 >> ,就是 append 在檔案後面
08/15 20:14, 6F
文章代碼(AID): #16mknNGm (Linux)
文章代碼(AID): #16mknNGm (Linux)