"-diary.txt-"というファイルがあり、その内容をインポートする必要があります。を使用して読み込もうとすると、空のecho < "-diary.txt-"
文字列が返されます。私はいくつかの調査を行い、次の結論を下しましたecho "$(<-diary.txt-)"
。私のコンピュータでテストしましたが、うまくいきますが、サーバーにログインしても空の文字列が返されます。次のコマンドのみ使用できます
. : [ [[ alias bg break cd chdir command continue echo eval exec exit export false fg getopts hash help history jobs kill let local printf pwd read readonly return set shift source test times trap true type ulimit umask unalias unset wait
。どうすればいいですか?
答え1
$(<file)
zsh
はKornシェルの特別な構成であり、これはandを含む他のいくつかの構成でもサポートされていますが、bash
それはすべてです(参照:Bashのファイル読み取りコマンドの置き換えについて)。
これをサポートしていないPOSIXに似たシェルでは、何も拡張されません。
コマンドのリストを見ると、便利な方法でしかread
入力できないようです。何も読み取られず、オプションの処理と変換後に引数だけを出力します。read
echo
while IFS= read -r line || [ -n "$file" ]; do
printf '%s\n' "$line"
done < -diary.txt-
一度に1行ずつ読み、各行を印刷する必要があります。printf
(echo
任意のデータで使用できないわけではありません)。ここで使用される3つのコマンド([
、、read
および)はすべてprintf
リストにあり、while; do; done
シェル||
言語の設定です。
ファイルに NUL 文字が含まれていない限り、これは機能します。ファイルが改行文字で終わらない場合は、出力に追加されます。
シェルはPOSIX-shに似ていると仮定しますが、コマンドリスト(ほとんどsh
組み込み)を考慮するとこれが可能です。
1、.
別名source
ファイルを読み取ることもできますが、読み取った内容をシェルコードとして解釈しようとするので役に立ちません。