Bash 脚本-每次输出一个数字

Bash 脚本-每次输出一个数字

我有一个 bash 脚本,它会回显到 config.txt 文件。每次执行时,我都希望它插入一个值作为标记。

例如我目前拥有的

echo userdataOH$((RANDOM % 10))\", >> /usr/local/src/bin/config.txt

这将输出userdataOH1-10但随机和值可能是相同的。

我想要类似的东西

echo userdataOH$((Value))\", >> /usr/local/src/bin/config.txt

Value1-10,且数字不能重复。这可能吗?

答案1

#!/usr/bin/env bash

config_file=/usr/local/src/bin/config.txt

last_value=$(tail -1 $config_file 2>/dev/null | perl -n -e 'print $1 if /OH(\d+)",\s*$/' || 0)
next_value=$((last_value + 1))

echo -n userdataOH$next_value\", >> $config_file

last_value行从输入文件(config.txt)的最后一行提取后面的数字OH。如果找不到这样的数字,则默认为0

echo -n禁止回显后出现的通常(换行符\n)。如果没有它,所有换行符userdataOHNN都会出现在单独的一行中,而不是附加到最后一行。

我不确定\"你问题中的 。它打印文字。如果那是拼写错误,"请将其从echo和命令中删除。perl

相关内容