1

まず第一に、私は bash の経験が 1 日しかないので、ほとんどの人にとって私の質問は非常に簡単かもしれません。echoここに私の質問があります: 以下に示す 2 つのコードは同じ仕事をしますが、I/O のおかげで、そのうちの 1 つでコマンドを使用する必要はありません。理由がわかりません。私を助けることができる人はいますか?前もって感謝します。

#!/bin/bash
# make_page ----- A script to produce an HTML file------

title="System information for"

cat <<- _EOF_
    <HTML>
    <HEAD>
        <TITLE>
        $title $HOSTNAME
        </TITLE>
        </HEAD>

    <BODY>
    <H1>$title $HOSTNAME</H1>
    </BODY>
    </HTML>
_EOF_

echo を使用する必要がある2番目のもの:

#!/bin/bash

# make_page - A script to produce an HTML file

echo "<HTML>"
echo "<HEAD>"
echo "  <TITLE>"
echo "  The title of your page"
echo "  </TITLE>"
echo "</HEAD>"
echo ""
echo "<BODY>"
echo "  Your page content goes here."
echo "</BODY>"
echo "</HTML>"
4

3 に答える 3

2

catファイル名を指定しない場合(問題のように)、標準入力から読み込まれます。質問のコードは、スクリプト内に記述されたいわゆる「ヒアドキュメント」<<-TAGから...構文を使用して標準入力をリダイレクトします。TAG

次にcat、 と同じように、読み取った内容を標準出力に出力しechoます。

注:-ヒア ドキュメントの構文には、先頭のタブを削除するという特別な意味があり、「ヒア ドキュメント」をインデントできます。それは省略され、単に<<TAG...である可能性がありますTAG

于 2013-08-13T07:24:51.883 に答える