每次启动机器时,我都会运行以下程序:
$ cat start.sh
#! /bin/bash
google-chrome &> /dev/null &
lantern &> /dev/null &
xdg-open . &> /dev/null &
emacs &> /dev/null &
code ~/Programs/ &> /dev/null &
xdg-open ~/Reference/topic_regex.md &> /dev/null &
麻烦&> /dev/null &
...我怎么能缩短逻辑?
该部分
&> /dev/null
表示输出重定向。您可以通过将多个命令分组到一个块中来将多个命令重定向到同一个文件:然而,同样的事情不能用于在后台启动单个命令 (
&
)。放在&
块之后意味着将整个块作为单个脚本在后台运行。我编写了一个函数并将其放入我
.bashrc
的运行中与我的终端分离的东西:... 接着:
而且因为我很懒,我还写了一个快捷方式
xdg-open
:因为
xdg-open
只需要一个参数,所以该函数xo
遍历所有给定的参数并xdg-open
分别调用每个参数。这允许:
您可以使用以下命令重定向所有后续命令的输出
我创建了一个特殊的文件,比如
/dev/null
用更短的路径来缩短重定向。我用作/n
新文件的路径:这样,您可以将各个行缩短为例如:
资料来源:如何创建 /dev/null?
您可以创建一个循环并将命令作为参数提供给它:
请注意,这种方式与使用花括号的 subshell 方法完全相同,可以汇总输出并一次重定向所有输出。