Linux 从Bash脚本运行时命令不工作?

Linux 从Bash脚本运行时命令不工作?,linux,bash,Linux,Bash,我已经删掉了Bash脚本中的一部分,我无法正常工作。我想将文件夹gmp-5.0.4的内容复制到gcc-4.6.3/gmp这些文件包已在脚本中提前解包: GMP_PACKAGE=ftp://ftp.gnu.org/gnu/gmp/gmp-5.0.4.tar.bz2 GCC_PACKAGE=http://mirrors.kernel.org/gnu/gcc/gcc-4.6.3/gcc-core-4.6.3.tar.bz2 copy_math_libraries() { LOCATI

我已经删掉了Bash脚本中的一部分,我无法正常工作。我想将文件夹gmp-5.0.4的内容复制到gcc-4.6.3/gmp这些文件包已在脚本中提前解包:

GMP_PACKAGE=ftp://ftp.gnu.org/gnu/gmp/gmp-5.0.4.tar.bz2
GCC_PACKAGE=http://mirrors.kernel.org/gnu/gcc/gcc-4.6.3/gcc-core-4.6.3.tar.bz2

copy_math_libraries()
{
        LOCATION="$1"

        mkdir "$LOCATION/gmp"
        cp -v -r "$PACKAGES/`basename $GMP_PACKAGE .tar.bz2`/*" "$LOCATION/gmp"
}

copy_math_libraries "$PACKAGES/`basename $GCC_PACKAGE .tar.bz2 | sed s/core-//`"
使用set-x运行脚本时,我得到以下输出:

++ cp -v -r '/home/klaus/toolchain/packages/gmp-5.0.4/*' /home/klaus/toolchain/packages/gcc-4.6.3/gmp
cp: cannot stat `/home/klaus/toolchain/packages/gmp-5.0.4/*': No such file or directory
如果我打开另一个shell并手动运行完全相同的命令,则一切正常:

cp -v -r /home/klaus/toolchain/packages/gmp-5.0.4/* /home/klaus/toolchain/packages/gcc-4.6.3/gmp

欢迎提供任何建议。

您的
*
未得到扩展

试试这个:

cp -v -r "$PACKAGES/`basename $GMP_PACKAGE .tar.bz2`/"* "$LOCATION/gmp"
“…”
防止外壳扩展(globbing)。这应该可以解决这个问题:

cp -v -r "$PACKAGES/`basename $GMP_PACKAGE .tar.bz2`/"* "$LOCATION/gmp"

您是否100%确定在调用
copy\u math\u libraries
时脚本确实解压了存档?您没有运行完全相同的命令«。您是否在命令中看到
set-x
输出中的引号?我也是。