gpt4 book ai didi

linux - shell Printf : Invalid Number error

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:25:18 28 4
gpt4 key购买 nike

我有一个名为 exfile 的文件(每行 4 个数字):

200807 0 96 200807

我想阅读此文件并使用所有 4 个数字。

我的 Shell 脚本是:

while read line
do
echo ${line}
set ${line}
echo "${1} ${2} ${3} ${4}"
declare -i start
declare -i end
start=`expr ${2} / 1`
end=`expr ${3} / 1`
for i in {${start}..${end}}
do
picnum=`printf "%03d" $i`
echo ${picnum}
done
done < exfile

错误是printf: {0..96}: invalid number

如果删除这些行:

declare -i start
declare -i end
start=`expr ${2} / 1`
end=`expr ${3} / 1`

错误是一样的。我添加这些行以将字符串转换为整数。

知道为什么吗?非常感谢。

=============================================

更新:以下代码有效:

while read line
do
echo ${line}
set ${line}
echo "${1} ${2} ${3} ${4}"
for i in $(seq ${2} ${3})
do
picnum=`printf "%03d" $i`
echo ${picnum}
done
done < exfile

最佳答案

大括号扩展发生在参数扩展之前。 "{${start}..${end}}" 不是有效的大括号扩展表达式,因此未扩展。请改用 seq

关于linux - shell Printf : Invalid Number error,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6400249/

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