ディスクの代わりにRAMにheredocを作成する方法は?

ディスクの代わりにRAMにheredocを作成する方法は?

次のスクリプトをファイルに保存します。

cat <<EOF | wc -l
$HOME
abc
$(hostname)
EOF

実行すると、次のエラーが発生します。

$ ./a.sh 
./a.sh: line 1: cannot create temp file for here-document: No space left on device

私のDebianはデバイスに余分なスペースがないと思います(これは事実ではありませんが、私たちの文脈から離れています)。しかし、RAMスペースは十分です。私のツール(スクリプト)もこのエラーが原因で動作を拒否するため、実際の「残りスペースなし」の問題を解決できません。実際の問題を解決するためにツールを引き続き使用できるように、スクリプトが "heredoc"処理にRAMを使用するようにするにはどうすればよいですか?

答え1

$TMPDIR変数がRAMディスク/ tmpfsのディレクトリを指すようにします。これは、bash(少なくとも)シェルが一時ファイルを作成する場所を決定するためです。

答え2

tmpfsファイルシステムのマウントポイントの検索

grep tmpfs /etc/mtab

私の場合、行の1つ

 tmpfs /run/user/1000 tmpfs rw,nosuid,nodev,relatime,size=808468k,nr_inodes=202117,mode=700,uid=1000,gid=1000 0 0

それから@telcoMが述べたように

export TMPDIR=/run/user/1000

(またはたとえばファイルに使用wc -l $(hostname) >> /run/user/1000/myexample

ところで、これは$(hostname)単なる例なのでしょうか、それともこれを期待していますか?

関連情報