从终端,我喜欢启动我的标准工作应用程序...gedit 与我的待办事项列表、firefox 和 chromium。
为了节省时间,我 (1) 将此命令连成一行,(2) 使用来消除 stderr 和 stdout 中的所有错误消息,2&>1 >/dev/null
(3) 使用来将进程置于后台以&
重新获得干净的终端:
gedit ~/Desktop/todo.txt 2&>1 > /dev/null & firefox 2&>1 > /dev/null & chromium-browser 2&>1 > /dev/null &
除了一个小细节之外,它似乎运行良好。Gedit 打开了 todo 文件以及名为 2 的新文本文件。管道是否放错了位置?
答案1
我往往看>/dev/null 2>&1
不到2>&1 >/dev/null
那么>
这里可能就是关键了,因为 gedit 的下一个选项是(a)文件名。
gedit 的手册页指出filename(s)
:
指定 gedit 启动时打开的文件 - 如果未指定,gedit 将加载一个带有无标题标签的空白文件。如果文件之间用空格隔开,则可以加载多个文件. gedit 还支持处理远程文件。例如,您可以将网页位置传递给 gedit,如“http://www.gnome.org”,或从 FTP 服务器加载文件,如“ftp://ftp.gnome.org/robots.txt”。
如果我没看错的话:2 被视为文件名,因为它前面有一个空格。这意味着您需要>
告诉 gedit 它不是文件名。
我自己会创建一个脚本并将命令放在不同的行上。
答案2
快速回答:
gedit -b wallet.pem > /dev/null 2>&1
该-b
选项置于gedit
后台。
较长的答案:
对于像这样的任务,我会将这些应用程序放在桌面环境的启动窗口中。