1. ホーム
  2. バッシュ

[解決済み】Bashでファイルや標準入力から読み込む方法

2022-04-01 14:19:01

質問

以下のPerlスクリプト( my.pl ) は、コマンドライン引数で指定されたファイル、あるいは 標準入力 (STDIN)を使用します。

while (<>) {
   print($_);
}

perl my.pl は標準入力から読み込みますが perl my.pl a.txta.txt . これはとても便利です。

Bashで同等のものはありますか?

どのように解決するのですか?

次の解決策は、ファイル名を最初のパラメータとしてスクリプトが呼び出された場合に、ファイルから読み取るものです。 $1 それ以外の場合は標準入力から。

while read line
do
  echo "$line"
done < "${1:-/dev/stdin}"

置換 ${1:-...} が取る $1 が定義されている場合。それ以外の場合は、自プロセスの標準入力のファイル名が使用される。