看板 Linux 關於我們 聯絡資訊
總共有三個地方要做修正 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
PHP5:感謝! 08/13 15:36