機能の最後に新しい行を印刷するには?

機能の最後に新しい行を印刷するには?

と入力すると、echo hello端末は次のように表示されます。

My-Computer:~ user$ echo hello
hello
My-Computer:~ user$ 

しかし、このような機能がある場合

stringen () { cat /dev/urandom | env LC_CTYPE=C tr -cd 'a-Z-A-z-0-9' | head -c "$1" ; }

こんな感じ

My-Computer:~ user$ stringen 18
^\k6JPWVIUdEiudcWSMy-Computer:~ user$ 

新しい行に印刷されないことを確認しますか? vs.を使用するprintf場合も同様です。echo関数でこのような新しい行を生成するにはどうすればよいですか?私は彼らが;この問題を修正すると思いましたが、明らかにそうではありませんでした。

たとえば、これは私が欲しいものを返します。

variable=$(stringen 18)
echo $variable

鳴り響くのでしょうか?

ベストアンサー1

catまたは改行を追加しませtrheadurandom動作しますがランダムなので信頼できません)。新しい行を手動で挿入し、関数の末尾にまたはprintf '\n'を追加する必要がありますecho

しかし、一部のシェルでは、zshこのような状況を防ぐためにこれを追加します。

おすすめ記事