2016-05-04 18 views
0

私はBashスクリプティングが初めてです。私はthisのリンクを見つけ、catのための珍しい構文に気づいた。cat <<を理解する!構文

cat << ! 
HOPE THIS WORKS 
This sample E-mail message demonstrates how one can attach 
files when sending messages with the Unix sendmail utility. 
! 

uuencode ${file_1} ${file_1} 
uuencode ${file_2} ${file_2} 
uuencode ${file_3} ${file_3} 
! 

< <の意味は?何が!平均?どのように猫は開け閉めをしています!しかし、uuencodeはありませんか?

編集:ありがとうございました!私が持っている最後の未解決の質問は、uuencodeセクションのための開始とマーカーがない理由です。私が理解しているところから、猫は<< !を持っています。それはHEREDOCです。 uuencodeしかし、HEREDOCのようには見えません。何がありますか?

+2

と呼ばれている(https://en.wikipedia.org/wiki/Here_document#Unix_shells)。ちょっと変わったマーカー –

+2

それはヘレドックのように見えるが、最後の '!'は私を混乱させる。 – user2357112

+0

最後の '!'は入力ミスのように見えます。削除する必要があります。 – chepner

答えて

2

ITSはヒアドキュメントと呼ばれ、その次のように構築さ:

command << MARKER 
Literal text here, can contain $variables 
and newlines, 
    leading spaces 
    and tabs... 
MARKER 

を、指定されたコマンドに標準入力として起こっているMARKER間のすべてで動作します。使用するマーカーはオプションで、例では!が使用されています。あなたが標準入力に入力してコマンドcatを養うならば、それは単にstdoutにそれを印刷します:それは[ヒアドキュメント]

cat << ! 
all this text will go to stdout 
! 
関連する問題