可以在一行中创建执行后刻录临时文件吗?

时间:2014-06-26 03:51:46

标签: bash temporary-files

我有很多(虚拟)机器要初始化,所以我编写了一个init脚本并将其放在Web服务器上。通常我将以下四行作为一行粘贴到控制台,以便可以预期初始化VM。

TEMPFILE = `mktemp`
curl http://host/path/to/init.sh > $TEMPFILE
sh $TEMPFILE
\rm $TEMPFILE

如何写它更优雅和紧凑?

2 个答案:

答案 0 :(得分:2)

您可以直接将curl的输出传送到shell:

curl http://host/path/to/init.sh | sh

不需要临时文件。


但是,这可能是不安全的,因为黑客可能会在传输过程中修改init.sh,然后就可以在您的系统上执行任意代码。我至少建议使用https

答案 1 :(得分:1)

将其直接传送到sh

curl http://host/path/to/init.sh | sh