![如何立即更改我创建的新文件的名称?](https://linux22.com/image/158521/%E5%A6%82%E4%BD%95%E7%AB%8B%E5%8D%B3%E6%9B%B4%E6%94%B9%E6%88%91%E5%88%9B%E5%BB%BA%E7%9A%84%E6%96%B0%E6%96%87%E4%BB%B6%E7%9A%84%E5%90%8D%E7%A7%B0%EF%BC%9F.png)
当我使用以下命令时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
的模板特征。