私はこれを持っています
while read -r line
do
echo -e "$line\r"
done <<< $keys
$keys をそのまま印刷すると、30k 行が表示されます。
上記のようにエコーを実行すると、出力として1行しか得られません。
すべての行をフィルタリングしてから出力する必要があります。
- どうしてこうなった(上書き)
- どうすればそれを防ぐことができますか?
私はこれを持っています
while read -r line
do
echo -e "$line\r"
done <<< $keys
$keys をそのまま印刷すると、30k 行が表示されます。
上記のようにエコーを実行すると、出力として1行しか得られません。
すべての行をフィルタリングしてから出力する必要があります。
これは\r
、echo
コマンドが原因で発生しています。
それを次のように置き換えて解決されます。
echo "$line"
変数を呼び出すには、"$keys"
その形式を維持するために使用する方がよいことに注意することも重要です。
すべて一緒に:
while read -r line
do
echo -e "$line"
done <<< "$keys"
while read -r line
do
echo -e "$line\r"
done <<< "$keys"
の引用符を観察してください<<< "$keys"
見て:
$ printf -v keys '%s\n' "key one" "key two"
$ echo $keys
key one key two
$ # Oh dear
$ # Now with quotes:
$ echo "$keys"
key one
key two
$ # Yeah :)
$ # Same with a here string:
$ while read line; do echo "$line"; done <<< $keys
key one key two
$ # Oh dear :(
$ # Now with quotes:
$ while read line; do echo "Read: $line"; done <<< "$keys"
Read: line one
Read: line two
$ # Done \o/
この投稿では、次のことを学びました。
今思い出して、