Shell Scripting如何组合变量和通配符

时间:2014-04-30 20:59:31

标签: shell scripting

我有一个简单的shell脚本可以同时运行多个命令。我无法弄清楚如何做到这一点:

'mkdir -p $FULL_BACKUP_PATH; cp -r $FULL_PATH/* $FULL_BACKUP_PATH/.;'

如果我使用单引号,变量不会获取值,如果我使用双引号,则通配符不会展开。

请帮忙

由于

1 个答案:

答案 0 :(得分:0)

我想你想要这个:

mkdir -p "${FULL_BACKUP_PATH}"; cp -r "${FULL_PATH}/*" "${FULL_BACKUP_PATH}"

双引号内的变量得到扩展,单引号内的变量则不会。如果变量是路径/目录,如果它们中有空格,则始终将变量放在双引号内,以便双引号"将它们保持在一起"。

如果代码出现在以这样的shebang开头的shell脚本中:

#!/bin/bash

您可以在-xv之后临时添加bash以查看在执行时展开的脚本,这将有助于您调试它,如下所示:

#!/bin/bash -xv