我看到了以下 bash 代码:at 19:00 <<! echo "job 1". 我有两个问题:
- 这个重定向运算符是什么:
<<!? 我编写了以下脚本代码:
at 19:00 <<! echo "job 1" at 20:00 <<! echo "job 2"当我执行这个脚本时,
atq命令只显示一个作业,第一个。怎么了?我应该如何通过这个脚本正确提交这两个工作?
我看到了以下 bash 代码:at 19:00 <<! echo "job 1". 我有两个问题:
<<!?我编写了以下脚本代码:
at 19:00 <<!
echo "job 1"
at 20
我看到了以下 bash 代码:at 19:00 <<! echo "job 1". 我有两个问题:
<<!?我编写了以下脚本代码:
at 19:00 <<!
echo "job 1"
at 20:00 <<!
echo "job 2"
当我执行这个脚本时,atq命令只显示一个作业,第一个。怎么了?我应该如何通过这个脚本正确提交这两个工作?
3.6.6 这里文档
这种类型的重定向指示 shell 从当前源读取输入,直到看到只包含单词(没有尾随空格)的行。然后将所有读取到该点的行用作命令的标准输入。
The format of here-documents is:
<<[−]word
here-document
delimiter
所以
word(在您的情况下!)之后指定任何内容at在一行或多行上指定作业word(再次,在您的情况下!)3.6.6 这里文档
这种类型的重定向指示 shell 从当前源读取输入,直到看到只包含单词(没有尾随空格)的行。然后将所有读取到该点的行用作命令的标准输入。
The format of here-documents is:
<<[−]word
here-document
delimiter
所以
word(在您的情况下!)之后指定任何内容at在一行或多行上指定作业word(再次,在您的情况下!)正如 Nya 解释的那样,这<<!是一个此处的文档。
你应该写:
at 19:00 <<!
echo "job 1"
!
at 20:00 <<!
echo "job 2"
!
如果没有以 开头的行!,您的此处文档就是 shell 脚本的其余部分,这就是为什么atq. (但是,该命令在运行时会安排第二个作业!)