【发布时间】:2014-09-04 03:31:52
【问题描述】:
看起来这是一个常见问题,但我没有找到适合我的特定场景的解决方案:
我的脚本有许多参数,它们是带有前导数字的字符串。然后,该脚本逐行遍历输入流,以查看用户的参数是否包含在输入流中。不幸的是,我的 if 语句出现错误,例如
...值对于 base 来说太大(错误标记是“21000E1E06F54F”)...
#get user arguments
MyArray+=($OPTARG)
#for each array element, loop through an input looking for the string
read <&3
if [[ $REPLY == *${MyArray[$i]}* ]]; then
found=1
fi
参数的一个例子是:21000E1E06F54F,但我不敢说它总是十六进制的——我宁愿把它当作一个字符串。显然,我可以在 $OPTARG 之前放一个字母,但是字符串比较关闭,否则我需要添加代码来解决添加的字母。关于如何解决这个问题的任何想法?我希望可以添加一些简单的语法来将变量转换为字符串...
谢谢,
【问题讨论】:
-
你确定这是错误的来源吗?我似乎不能在这里失败。那里的循环代码是什么样的?您是否在任何地方的算术上下文
$((...))中使用该输入/参数? -
向我们展示您在哪里使用该值。
-
引用错误信息时,不要缩写为
...。向我们显示确切的完整错误消息。
标签: bash