[問題] shell scripts讀取外部傳進來的多項指令列

看板LinuxDev作者 (另一種生活!!)時間16年前 (2009/02/11 23:14), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/3 (看更多)
不好意思,小弟是shell script新手一枚 最近在研究途中遇到一個問題,苦思不得其解,想說來此請教一下大家!~ 狀況是我在C語言中,輸入一串指令列並寫到另一個檔案filename中儲存, 指令列如右 ===> -D "aaa bbb ccc" 然後我在shell script中,用了sed來讀進檔案filename中的那一行, ex:第一行 `sed -n 1p filename` 但是shell在執行時,卻會把指令列分別讀成 -D "aaa bbb ccc" 所以shell執行時在這一段會產生錯誤, 因為它會讀成"aaa,而不是aaa,然後把ccc讀成ccc" 想請問各位的是, 有辦法讓shell看的懂從外部讀取的 "aaa bbb ccc" 為一個多項的參數項嗎? 因為我直接在shell上打 -D "aaa bbb ccc",shell是可以執行的。 我有試過用`sed|awk`這個方法, 將 -D、aaa、bbb、ccc分別取出來並用雙引號將aaa、bbb、ccc包在一起, 但是覺得沒辦法適用在格式較不固定的指令列,ex: -D "aaa bbb ccc" -d -v 1.1 想請教大家是否有比較好的方法, 來讓shell看的懂外部傳來的指令哪是哪些是在一起的? 哪些是分開的? 不知是否有人遇過類似的問題,麻煩高手們指教一下吧! 萬分感謝! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.136.221.163
文章代碼(AID): #19akjecj (LinuxDev)
文章代碼(AID): #19akjecj (LinuxDev)