Lee*_*Lee 3 linux bash io-redirection shell-script
我想知道下面命令中的减号 (-) 和 EOC 是什么意思。我知道像 Perl 这样的一些语言允许您选择任意字符组合(不绑定到 EOF),但这里是这种情况吗?负号对我来说完全是个谜。提前致谢!
ftp -v -n $SERVER >> $LOG_FILE <<-EOC
user $USERNAME $PWD
binary
cd $DIR1
mkdir $dir_lock
get $FILE
bye
EOC
Run Code Online (Sandbox Code Playgroud)
这是此处文档重定向。
command <<-word
here-document contents
word
Run Code Online (Sandbox Code Playgroud)
用于word
分隔此处文档的 是任意的。使用大写单词很常见,但不是必需的。
in-
的<<-word
作用是从此处文档内容的每行开头删除制表符。
cat <<-SERVICE_ANNOUNCEMENT
hello
world
SERVICE_ANNOUNCEMENT
Run Code Online (Sandbox Code Playgroud)
如果上面的此处文档在每行开头都使用文字制表符编写,则将导致输出
hello
world
Run Code Online (Sandbox Code Playgroud)
而不是
hello
world
Run Code Online (Sandbox Code Playgroud)
结束分隔符之前的制表符也会被删除<<-
(但不能没有-
):
cat <<-SERVICE_ANNOUNCEMENT
hello
world
SERVICE_ANNOUNCEMENT
Run Code Online (Sandbox Code Playgroud)
(相同的输出)
归档时间: |
|
查看次数: |
4845 次 |
最近记录: |