+ -
当前位置:首页 → 问答吧 → 数字运算问题

数字运算问题

时间:2011-07-19

来源:互联网

execute_on_song_change = "notify 'ncmpcpp' '`ncmpcpp --now-playing`' "
这个是我在ncmpcpp播放器里的一条设置,但是得到的结果却是ncmpcpp ncmpcpp --now-playing 。
这里,最外面的引号是必须的,里面我希望用 ` ` 来执行命令,但是 ` ` 外面的 ' ' 似乎无法取全部的结果。( ncmpcpp --now-playing 的输出是 (3:44) 林俊杰 - 星球 )
notify 是我的一个脚本, 后面要跟两个变量, $1 $2. 这里$1是ncmpcpp $2则是ncmpcpp --now-playing的结果。

求解决办法。

最后由 numbchild 编辑于 2011-07-19 12:52,总共编辑了 1 次

作者: numbchild   发布时间: 2011-07-19

``的外面,别带' '了。

作者: eexpress   发布时间: 2011-07-19

eexpress 写道:
``的外面,别带' '了。


因为$2带有空格还有其他的符号,比如(4:19) 许嵩 - 玫瑰花的葬礼。 所以要用shell的$@之类的。可是我不知道是哪个。
ee, 问一下,shell里引用全部是$@还是其他的? 我测试了$@不行。error(Invalid number of options.)

作者: numbchild   发布时间: 2011-07-19

那也试试转义\" \"。可能\' \' 也可以。
mocp里面,也使用onsongchange

execute_on_song_change = "notify 'ncmpcpp' \"`ncmpcpp --now-playing`\" "
execute_on_song_change = "notify 'ncmpcpp' \'`ncmpcpp --now-playing`\' "

你试试。

通常,你这接口,是提供给sh来跑的。通常要转义。

作者: eexpress   发布时间: 2011-07-19

这样带空格的参数传进去也被分割,除非把空格换成字符串,脚本里再换成空格。
(或者直接使用环境变量)

作者: fnan   发布时间: 2011-07-19

eexpress 写道:
那也试试转义\" \"。可能\' \' 也可以。
mocp里面,也使用onsongchange

execute_on_song_change = "notify 'ncmpcpp' \"`ncmpcpp --now-playing`\" "
execute_on_song_change = "notify 'ncmpcpp' \'`ncmpcpp --now-playing`\' "

你试试。

通常,你这接口,是提供给sh来跑的。通常要转义。


恩,转义可以,\" 可以,但是\' 不行。
搞定了,谢谢ee和楼下哪位,楼下说的貌似很麻烦啊。。。

作者: numbchild   发布时间: 2011-07-19

以前尝试用变量传带空格参数都失败,转义有效?试试。

作者: fnan   发布时间: 2011-07-19

热门下载

更多