Lwhite
(Lwhite)
1
我打算让那个 bilidan 在回车后运行并且没输出。于是我在 zshrc 里添加一条
alias bilidan='/home/lwhite/Downloads/danmaku2ass/bilidan.py $1 &> /dev/null &'
它给的输出是
[1] 19296
zsh: no such file or directory: http://www.bilibili.com/video/av1552190/
➜ ~
[1] + 19296 done /mnt/windiskf/ 下载 /danmaku2ass/bilidan.py $1 &> /dev/null
如果去掉最后面的&。
alias bilidan='/home/lwhite/Downloads/danmaku2ass/bilidan.py $1 &> /dev/null
这样就会正常运行。看上去如果最后加一个& 号它就会把 $1 真当成"$1" 了。有什么办法能让后台运作和参数一起生效吗?
nohup
Sent from my iPhone 5s using Tapatalk
Lwhite
(Lwhite)
3
我看到你制作的 GUI 项目了,准备去用,谢谢。
把 nohup 加到那条命令里还是不行。alias 是
alias bilidan='nohup /home/lwhite/Downloads/danmaku2ass/bilidan.py $1 &> /dev/null &'
打开终端运行
➜ ~ bilidan http://www.bilibili.com/video/av1707067/
[1] 10261
zsh: no such file or directory: http://www.bilibili.com/video/av1707067/
➜ ~
[1] + 10261 done nohup /home/lwhite/Downloads/danmaku2ass/bilidan.py $1 &> /dev/null
➜ ~
把& 号删了才能运行,在 alias 被删掉& 号的情况下在 zsh 里同样运行那条命令,然后手打& 号就能运行。alias 里的& 号我完全搞不懂为啥它就会把 $1 废了。没有查到关于那个& 号在 alias 的问题解答。
就没有什么办法一行 alias 搞定不用另外建一个脚本吗?我知道有另外写个有参数的脚本,然后 alias 直接运行脚本就行得通的方法。
参阅了
run a function or alias set in bashrc or profile through nohup
using aliases with nohup
alias
Linux 技巧:让进程在后台可靠运行的几种方法