如何在 RAM 而不是磁盘上创建heredocs?

如何在 RAM 而不是磁盘上创建heredocs?

将以下脚本保存在文件中:

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 空间。由于我的工具(脚本)也由于此错误而拒绝工作,因此我无法解决实际的“没有剩余空间”问题。我可以做些什么来让我的脚本使用 RAM 进行“heredoc”处理过程,以便至少让它们工作,以便我可以继续使用我的工具解决实际问题?

答案1

$TMPDIR变量指向 RAM 磁盘/tmpfs 上的某个目录,因为该变量决定 shell(至少bash)在何处创建其临时文件。

答案2

tmpfs找到文件系统的挂载点

grep tmpfs /etc/mtab

就我而言,其中一行是

 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)只是一个例子还是您对此有何期望?

相关内容