📌

【Bash】while readでファイルの中身を1行ずつ読み込む

2023/07/31に公開

やりたいこと

user.txtを読み取って、

user.txt
user1
user2
user3
user4
user5
user6
user7
user8
user9
user10

このように表示したい

あなたはuser1です
あなたはuser2です
...
あなたはuser10です

環境

$ bash --version
GNU bash, version 5.0.17(1)-release (x86_64-pc-linux-gnu)

スクリプト

user.sh
#!/bin/bash

while read line
do
  echo "あなたは${line}です"
done < "user.txt"

実行結果

$ ./user.sh 
あなたはuser1です
あなたはuser2です
あなたはuser3です
あなたはuser4です
あなたはuser5です
あなたはuser6です
あなたはuser7です
あなたはuser8です
あなたはuser9です
あなたはuser10です

やっていること

  • whileループがファイルuser.txtを1行ずつ読み込む。
  • echoコマンド実行、現在のuserを表示
  • user.txtから読み込み完了したらwhileループから抜ける

使いみち

  • 外部ファイルの内容をスクリプトで処理する

参考

https://blog.serverworks.co.jp/shell-script-while
https://www.server-memo.net/shellscript/read-file.html

Discussion