【发布时间】:2011-02-10 00:26:29
【问题描述】:
希望这应该是一个简单的...这是我的 test.sh 文件:
#!/bin/bash
patch_file="/home/my dir/vtk.patch"
cmd="svn up \"$patch_file\""
$cmd
注意“我的目录”中的空格。当我执行它时,
$ ./test.sh
Skipped '"/home/my'
Skipped 'dir/vtk.patch"'
我不知道如何在变量中容纳空间并仍然执行命令。但是在 bash shell 上执行以下操作没有问题。
$ svn up "/home/my dir/vtk.patch" #WORKS!!!
任何建议将不胜感激!我在 Windows 上使用来自 cygwin 的 bash。
【问题讨论】:
-
为什么要将命令放在变量中?为什么不直接执行命令呢?
-
@Bata 没有回答问题,为什么不做
svn up "$patch_file"而不是将整个命令放在$cmd变量中,这是多余的。 -
您可以在变量中构建目录并将其作为参数传递给可执行文件,而无需将该(或其他参数)放入变量中。
svn up "$dir_and_filename_var".
标签: bash variables space unicode-escapes