次のスクリプトをファイルに保存します。
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)
単なる例なのでしょうか、それともこれを期待していますか?