下面是一些代碼,我在一個叫做libtool的在一個開源項目的文件中找到(未編譯此係統上):這個bash代碼在做什麼?
case $arg in
-*=*)
optarg=`$echo "X$arg" | $Xsed -e 's/[-_a-zA-Z0-9]*=//'` ;;
*) optarg= ;;
esac
我得到的情況下發言,但我不知道第一optarg=...
一行。它試圖得到什麼?對於此測試情況下,讓:
CC="arm-elf-gcc"
arg="--tag=CC"
Xsed="/usr/bin/sed -e 1s/^X//"
在OS X上運行這讓我:
../libtool: line 828: X--tag=CC: command not found
我想可能是嘗試指派「武裝精靈-GCC」到變量OPTARG,但我不確定。該軟件在Ubuntu中整體編譯,但libtool文件看起來非常不同。
您錯過了'$ echo'的定義;在大多數GNU軟件中,這是搜索不會擴展轉義序列的「echo」實現的結果。 – geekosaur 2012-04-25 02:06:06
@geekosaur調試時,$ echo被發現爲空。任何想法要做什麼(得到一個新的回聲?)? – jtpereyda 2012-04-25 04:29:44
您可以嘗試將其設置爲「echo」。另外,如果您使用在另一個系統上生成的'libtool'(例如,Linux vs OS X),則可能需要運行'libtoolize'來生成一個可在您的本地系統上運行的'libtool'。 – geekosaur 2012-04-25 04:39:00