クリップボードにコピーしました!
created-2025/12/17
updated-2026/03/24
前書き
このリポジトリは、シェルスクリプトを実行してwhile文の入力にヒアドキュメントを使用して内容を表示します
インストールする必要のあるコマンド
クイックスタート
上記のコマンドをインストール済みの方は、以下のコマンドを実行してリポジトリからダウンロード後、ディレクトリを移動し、シェルスクリプトを実行してヒアドキュメントで与えられた文字列を表示してみてください
ubuntu
git clone https://github.com/trygfmi/shell_here-document-input-while
cd shell_here-document-input-while
cat start_shell_here-document-input-while.sh
chmod 744 start_shell_here-document-input-while.sh
./start_shell_here-document-input-while.sh
出力結果
echo "hello awk command world" | awk '{print $4}'
macos
MacPorts
source ~/bashrc_folder/macports_alias
git clone https://github.com/trygfmi/shell_here-document-input-while
cd shell_here-document-input-while
cat start_shell_here-document-input-while.sh
chmod 744 start_shell_here-document-input-while.sh
./start_shell_here-document-input-while.sh
出力結果
echo "hello awk command world" | awk '{print $4}'
windows
WSL2
git clone https://github.com/trygfmi/shell_here-document-input-while
cd shell_here-document-input-while
cat start_shell_here-document-input-while.sh
chmod 744 start_shell_here-document-input-while.sh
./start_shell_here-document-input-while.sh
出力結果
echo "hello awk command world" | awk '{print $4}'
MSYS2 MINGW64
git clone https://github.com/trygfmi/shell_here-document-input-while
cd shell_here-document-input-while
cat start_shell_here-document-input-while.sh
chmod 744 start_shell_here-document-input-while.sh
./start_shell_here-document-input-while.sh
出力結果
echo "hello awk command world" | awk '{print $4}'
実行手順
ubuntu
クリックして詳細を開く
事前確認
以下のコマンドを端末に打ち込んでcommand not foundが出なければokです
git --version
preinstall
端末にcommand not foundが出たコマンドを以下のコマンドでインストールしてください
sudo apt install git
コマンド
以下のコマンドを端末で実行することで詳細のような文字列が出力されるはずです
git clone https://github.com/trygfmi/shell_here-document-input-while
cd shell_here-document-input-while
cat start_shell_here-document-input-while.sh
chmod 744 start_shell_here-document-input-while.sh
./start_shell_here-document-input-while.sh
詳細
echo "hello awk command world" | awk '{print $4}'
macos
クリックして詳細を開く
事前確認
以下のコマンドをターミナルに打ち込んでcommand not foundが出なければokです
source ~/bashrc_folder/macports_alias
git --version
※macosはMacPortsパッケージマネージャを使用してコマンドを管理します。もしインストールしていない方は以下のリンクからMacPortsのインストール手順をご覧ください
またコマンドに別名を設定して既存の環境と競合しないでコマンドを呼び出せるようにします。
初めてこのブログを利用する方は、以下の2つの記事を参考に環境構築してください
preinstall
ターミナルでcommand not foundが出たコマンドを以下のコマンドでインストールしてエイリアスを設定してください
sudo port install git
echo 'alias git="/opt/local/bin/git"' >> ~/bashrc_folder/macports_alias
コマンド
以下のコマンドをターミナルで実行することで詳細のような文字列が出力されるはずです
source ~/bashrc_folder/macports_alias
git clone https://github.com/trygfmi/shell_here-document-input-while
cd shell_here-document-input-while
cat start_shell_here-document-input-while.sh
chmod 744 start_shell_here-document-input-while.sh
./start_shell_here-document-input-while.sh
詳細
echo "hello awk command world" | awk '{print $4}'
windows
クリックして詳細を開く
事前確認
以下のコマンドをプロンプトに打ち込んでcommand not foundが出なければokです
WSL2
git --version
MSYS2 MINGW64
git --version
※windowsはWSL2とMSYS2 MINGW64で確認しています。可能な限りWSL2をインストールしていただいて、もし設定できなかった場合はMSYS2をインストールすることで実行できますが、所々WSL2でしか実行できないコマンドが出てくるかもしれません。WSL2とMSYS2のインストール方法は下記の記事を参考にしてください
preinstall
プロンプトでcommand not foundが出たコマンドを以下のコマンドでインストールしてください
WSL2
sudo apt install git
MSYS2 MINGW64
pacman --sync git
コマンド
以下のコマンドをプロンプトで実行することで詳細のような文字列が出力されるはずです
WSL2
git clone https://github.com/trygfmi/shell_here-document-input-while
cd shell_here-document-input-while
cat start_shell_here-document-input-while.sh
chmod 744 start_shell_here-document-input-while.sh
./start_shell_here-document-input-while.sh
詳細
echo "hello awk command world" | awk '{print $4}'
MSYS2 MINGW64
git clone https://github.com/trygfmi/shell_here-document-input-while
cd shell_here-document-input-while
cat start_shell_here-document-input-while.sh
chmod 744 start_shell_here-document-input-while.sh
./start_shell_here-document-input-while.sh
詳細
echo "hello awk command world" | awk '{print $4}'
後書き
以下のコードのようにdone << ‘EOF’の部分でEOFのように'(シングルクオーテーション)で囲まないパターンでもエラーになりませんが、$4が変数展開されて空白になる点には気をつけてください
while IFS= read -r keyword; do
echo "$keyword"
done << EOF
echo "hello awk command world" | awk '{print $4}'
EOF