Re: [問題] shell script -- getopt 問題

看板Linux作者 (焰)時間15年前 (2008/08/13 06:32), 編輯推噓1(100)
留言1則, 1人參與, 最新討論串3/3 (看更多)
總共有三個地方要做修正 1. 把參數傳給 getopt 要加上正確的引號, 請參考 man bash 有關 "$*" "$@" 2. 原版 getopt 並不處理空白或其他特殊字元, 必須啟動 getopt 的加強版功能, 請參考 man getopt 有關 COMPATIBILITY 一節 3. 參數傳回 bash 不能直接丟過去, 要告訴 bash 重新 parse 參數串裡頭的引號空白, 請參考 man bash 有關 eval ※ 引述《PHP5 (Powered by Zend Engine2)》之銘言: : getopt要如何正確處理含有空白的arg? : 以下是小弟的script : test.sh : #!/bin/bash : args=`getopt a:b: $*` 以上這一行改成: args=$(getopt -o a:b: "$@") 或者是 args=$(getopt -s bash a:b: "$@") : if [ $? -ne 0 ]; then : echo error : exit 1 : fi : set -- $args 以上這一行改成: eval set -- "$args" : while true : 以下省略 -- A quotation from the movie "The Se7en": Ernest Hemingway once wrote that, "The world is a fine place and worth fighting for." I agree with the second part. -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 210.64.152.36

08/13 15:36, , 1F
感謝!
08/13 15:36, 1F
文章代碼(AID): #18eWzbo_ (Linux)
文章代碼(AID): #18eWzbo_ (Linux)