2014-04-21 119 views
0

我试图使用Torrent-Video-Player脚本,但它不适用于包含空格的文件。这是一个鹦鹉螺脚本。带空格的Bash脚本参数

#!/bin/bash 
xterm -e "peerflix "$1" --vlc" 

“test.torrent” - >确定
“测试test.torrent” - >无法execvp peerflix测试:没有这样的文件或目录中找到

+0

为什么你有嵌套报价? – anubhava

回答

3

更改线路

xterm -e "peerflix "$1" --vlc" 

xterm -e "peerflix '$1' --vlc" 

xterm -e "peerflix \"$1\" --vlc" 

第一种形式是等价于:

xterm -e "peerflix " $1 " --vlc" 

这不是你期待什么。

+0

Thx这些解释!这是现在的作品! – melkir

+0

@melkir很高兴听到它,欢迎您。 –

+0

很遗憾,这是不正确的。 ''-e''接受多个参数(所以它也可以作为参数传递它们)。你的解决方案可能会破坏,如果你有其他特殊字符(如引号) 你想要的是''xterm -e'peerflix'“$ 1”'--vlc'''或者你可以省略单引号''xterm -e peerflix “$ 1”--vlc''。但是,它不能解决带有斜杠的文件问题。这应该会更好(如果peerflix支持它,但我不知道)。 '''xterm -e peerflix --vlc - “$ 1”'' –