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()
{
        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"

关于linux - 从 Bash 脚本运行时命令不起作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9550479/

相关文章:

linux - 无法从linux命令发送邮件

Linux:当底层内存映射文件更改时会发生什么?

c - 实现共享库/模块 - 参数结构不在 header 中

linux - 结合 tty 的历史

python - 如何使用linux bash shell工具在服务器上搜索文件名列表

Android ADB 设备不会保持连接

macos - OSX Terminal.app SSH 端口

php - bash 脚本从命令行运行,但不是从 cron 运行

python - 如何使用带有 stdin 的 wall 命令将消息广播到 python 中的所有 bash 终端?

bash - 查找并删除具有相同前缀但不同扩展名的文件(即 *.flac 和 *.mp3)