gpt4 book ai didi

linux - bash:有意义的唯一 ID 生成

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:38:06 27 4
gpt4 key购买 nike

我正在使用以下命令为我的 shell 脚本生成一个唯一的 ID。我想在不使用硬盘上的任何中间文件的情况下捕获变量中的输出。

    echo `dmidecode –t 4 -s system-uuid`-$$-$BASH_SUBSHELL-$BASHPID-`date '+%Y%m%d_%H%M_%S_%N'` | tr '-' '_'
XXB3A1XX_81XX_4XX2_AXX4_XXXX62820BF_24115_0_8550_201709XX_1446_46_385924883

我可以使用反引号或 $() 构造,但这样做会改变 $BASH_SUBSHELL 的值并淡化唯一 ID 的值。

欢迎任何不使用硬盘且在捕获变量中的输出时不更改 $BASH_SUBSHELL 值的解决方案。

注意:示例中的结果部分被 X 遮盖了

最佳答案

使用 printf 并将变量保存在格式字符串中:

format="%s-$$-$BASH_SUBSHELL-$BASHPID-%s"
uuid=$(printf "$format" $(dmidecode –t 4 -s system-uuid) $(date '+%Y%m%d_%H%M_%S_%N') | tr - _)

然后:

$ echo "$uuid"
XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX_11764_0_11764_20170912_1906_42_765827138
$ echo `dmidecode –t 4 -s system-uuid`-$$-$BASH_SUBSHELL-$BASHPID-`date '+%Y%m%d_%H%M_%S_%N'` | tr '-' '_'
XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX_11764_0_11865_20170912_1909_28_405748643

关于linux - bash:有意义的唯一 ID 生成,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46172952/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com