dポイントプレゼントキャンペーン実施中!

こんにちは
以下はどういう風に分解して考えたら良いのでしょうか?

cat > test.sh << EOF
#!/usr/bin/env bash
****
***
***
EOF


どうぞよろしくお願いします。

質問者からの補足コメント

  • また分解されたそれぞれの意味(コマンドの内容)を教えていただけたら幸いです

      補足日時:2020/10/06 13:44

A 回答 (4件)

まず


cat とそれ以外
に分かれます。
cat は コマンドです。
使い方は
man cat
で確認できます。
https://linuxjm.osdn.jp/html/gnumaniak/man1/cat. …
オプション無し、ファイル指定無しのときの動作になります。

> や << は、シェルのリダイレクトという機能を使うためのものです。
これは、シェル(bash)の機能なので、bashのマニュアルを確認します
https://linuxjm.osdn.jp/html/GNU_bash/man1/bash. …
→ リダイレクト を読むこと。

<< 文字列
の形のリダイレクトは特に「ヒアドキュメント」と呼ばれています。
詳細は「bash ヒアドキュメント」で検索。



cat
標準入力から入力した内容を標準出力に出力する。
> test.sh
標準出力による出力先を ファイル test.sh (上書き) とする。
<< EOF
EOF という行が来るまでの内容を標準入力として扱う。
    • good
    • 0
この回答へのお礼

ご丁寧にご回答いただきありがとうございます。
調べるにもどう調べて良いか分からず大変助かります。

どうもありがとうございました。
感謝いたします。

お礼日時:2020/10/06 19:02

「英文和訳」ならぬ「コマンド和訳」してみました



「EOF」という文字列が現れるまで以下の文字列をそのまま、「test.sh」というファイルに書き込みなさい
#!/usr/bin/env bash
****
***
***
EOF
    • good
    • 0
この回答へのお礼

シンプルで非常に分かりやすくご説明いただきありがとうございます。
助かりました。

お礼日時:2020/10/10 02:47

cat <<EOF


#!/usr/bin/env bash
****
***
***
EOF
だと、途中の行が端末に表示されます。(ヒアドキュメント)
> test.sh と書くことで、それを端末じゃなくてファイルに書くように変更します。(リダイレクト)
    • good
    • 0
この回答へのお礼

なるほど。端末ではなく、EOFまでをファイルに書き込むんですね。
ありがとうございます。

お礼日時:2020/10/10 02:46

cat > test.sh





<< EOF

EOF

に分解して考えたら良いです。
    • good
    • 0
この回答へのお礼

ご回答ありがとうございます。(補足に加えましたが、それぞれはどういった意味合いになりますでしょうか?)

お礼日時:2020/10/06 14:06

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!