求教脚本无法运行的小问题

2017-06-05 08:04:56 +08:00
 bsns
最近在利用 Nautilus Actions 搞一些右键功能,其中一个就是:右键->记录文件名到本地 txt 文件,于是问题来了,同样一条命令
echo file > /home/.../getname.txt 在终端运行可以正常记录文件名。
但是在 Nautilus Actions 中
path:echo
parameters:%w > /home/.../getname.tx
而且它下方提示的输出样式也是 echo file > /home/.../getname.txt
但是无法获得文件名,本地 txt 文件没有变化,何解?
2921 次点击
所在节点    Linux
9 条回复
freedomSky
2017-06-05 08:15:54 +08:00
没用过这个工具,看起来是你的参数是只传给 echo 的,而不是整个 cmd+para 在 shell 下执行,echo 只能接收到第一个空格前的参数( file ),后面的被忽略

解决办法:写个 shell 脚本,接收一个参数,动作就是 echo $1 > /home....,然后 path 改成这个脚本,参数为%w

希望对你有用:)
xiaket
2017-06-05 08:29:06 +08:00
echo 是一个 bash 内建命令,不是系统命令.
araraloren
2017-06-05 08:38:11 +08:00
@xiaket echo 是有对应的系统命令的
xiaket
2017-06-05 08:59:24 +08:00
@araraloren 他直接写 echo 也肯定不会找到 /bin/echo 啊...
bsns
2017-06-05 09:37:51 +08:00
@bsns /bin/echo 我也尝试了,同样不行
@freedomSky 还是采用你的建议,调用本地 shell 脚本了,大致是 echo -n $1 > /home/.../getname.txt 这样,在我看起来语义没什么变化,但是确实可以记录了,缺点就是增加一个本地文件吧,thanks。
zhidian
2017-06-05 11:06:07 +08:00
cat file > othername.txt
zhidian
2017-06-05 11:06:25 +08:00
额……我错了,你要的是文件名啊……
freedomSky
2017-06-05 11:58:52 +08:00
@bsns 这里的 echo 不是通过 shell 调用的,' > xxx' 重定向输出是 shell 做的工作,所以这里' > xxx'做为参数起不到重定向输出的作用, 实际执行效果也许是这个样子: echo 'file > /home/.../getname.txt'
oaix
2017-06-05 16:22:48 +08:00
我猜这样可以
path: bash
parameters: -c "%w > /home/.../getname.txt"

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/365959

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX