大于行尾的符号

时间:2017-09-18 23:17:14

标签: bash shell

我刚刚在脚本中看到以下内容,我不确定它的含义:

.............
started=$STATUSDIR/.$EVENT_ID-started
   errs=$STATUSDIR/.$EVENT_ID-errors

# started is used to capture the time we started, so
# that it can be used as the latest-result marker for
# the next run...
>"$started"
>"$errs"

# store STDERR on FD 3, then point STDERR to $errs
exec 3>&2 2>"$errs"
..............

具体来说,“>”在行的开头。该脚本实际上失败了“没有这样的文件或目录”。 vars都是通过辅助脚本提供的,似乎没有任何逻辑来创建它抱怨的目录。

这对谷歌来说并不是最简单的事情,所以我想我会在这里问这个问题,以便将来的重击黑客可以找到你可爱的人们能够提供的答案。

1 个答案:

答案 0 :(得分:2)

这是redirection。它与echo hello >file使用的语法相同(或者不那么常规,但同样正确的等效>file echo hello),只是没有echo hello。 :)

当附加到空命令时,重定向的效果与运行并立即退出但没有输出的命令相同:它创建(如果不存在)或截断(如果存在)输出文件,关闭该文件,然后让脚本继续执行下一个命令。