被引用时,我有以下代码:我怎样才能正确地逃脱bash的变量以各种方式
set -o xtrace
openDirectory()
{
lxterminal --command="zsh -c 'cd "$1"; zsh -i' "
}
# Handle argument.
if [ "[email protected]" ]
then
openDirectory ~/Projects/Clients/"@1"
cd $1
fi
如果传入的参数空间,就会失败。
lxterminal '--command=zsh -c '\''cd /home/chris/Projects/Clients/Test' - 'Space; zsh -i'\'' '
cd Test - Space
cd: too many arguments
我该如何正确地逃避这个?用bash之类的东西可以做到这一点吗?
为什么不使用'lxterminal'的'--working-directory'参数,而不是'cd' +转义地狱?例如'lxterminal --working-directory“$ 1”--command =“zsh -i”' – jm666
感谢您的解决方法! –
我认为你的意思是'$ 1'而不是'@ 1'。检查是否传递参数的正确方法是使用'if [$#-gt 0]; '。 '“$ @”'会扩展为多个参数,这可能会导致'['失败。 – chepner