如何在bash shell脚本的变量中容纳空格?

Bal*_*ala 3 variables bash space unicode-escapes

希望这应该是一个简单的...这是我的test.sh文件:

#!/bin/bash
patch_file="/home/my dir/vtk.patch"
cmd="svn up \"$patch_file\""
$cmd
Run Code Online (Sandbox Code Playgroud)

注意“我的目录”中的空格。当我执行它时

$ ./test.sh 
Skipped '"/home/my'
Skipped 'dir/vtk.patch"'
Run Code Online (Sandbox Code Playgroud)

我不知道如何在变量中容纳空间并仍然执行命令。但是在bash shell上执行以下操作可以正常工作。

$ svn up "/home/my dir/vtk.patch"   #WORKS!!!
Run Code Online (Sandbox Code Playgroud)

任何建议将不胜感激!我正在Windows上使用cygwin的bash。

Kev*_*eck 5

使用eval $ cmd,而不是普通的$ cmd

  • @Bala:请注意[eval的安全风险](http://mywiki.wooledge.org/BashFAQ/048“ BashFAQ / 048”)。 (2认同)