如何立即更改我创建的新文件的名称?

如何立即更改我创建的新文件的名称?

当我使用以下命令时solcjs --bin test.sol,将创建一个具有以下名称的文件byonotary_sol_BYONotary.bin

如何立即将此文件名存储在变量中?我希望运行solcjs --bin test.sol并将其新创建的文件名保存到同一行代码中的变量中。

谢谢。

答案1

由于文件名看起来是根据文件中的合同生成,我建议为输出创建一个临时目录,以便更轻松地确定哪个“新”文件是您要查找的文件:

d=$(mktemp -d -p .)
solcjs --bin --output-dir "$d" test.sol && set -- "$d"/*.bin && newfile=$1

这告诉mktemp我们创建一个相对于当前 ( .) 目录的目录。然后它像以前一样运行solcjs,但带有--output-dir选项。在同一行中(或者,更易读的是,在单独的行中),它​​要求 shell*.bin在该新目录中扩展通配符。据推测,其中唯一匹配的文件是新创建的文件。当然,*.bin如果您停止使用该选项,请调整。--bin

您可以通过多种方式调整临时目录名称,例如使用当前时间戳(例如date +%s)或使用mktemp的模板特征。

相关内容