下面是一些代码,我在一个叫做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