我有一个 bash 脚本,它会回显到 config.txt 文件。每次执行时,我都希望它插入一个值作为标记。
例如我目前拥有的
echo userdataOH$((RANDOM % 10))\", >> /usr/local/src/bin/config.txt
这将输出userdataOH1-10
但随机和值可能是相同的。
我想要类似的东西
echo userdataOH$((Value))\", >> /usr/local/src/bin/config.txt
Value
1-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