我想要的是每个起始变量都将通过if语句进行检查。唯一的问题是,我不知道如何给予" start1"和" start2" (等)通过startx=start$i
#!/bin/sh
start1="08:00:00"
start2="09:00:00"
start2="09:00:00"
i=1
while [ $i -lt 4 ]
do
startx=start$i
if [[ "$timestamp" == "$startx" ]]
echo "time is common with $startx"
else
""
fi & i=$[$i+1]
done
我已经使用声明功能进行了检查,不知怎的,我不能让它工作? 非常感谢!
答案 0 :(得分:1)
您正在寻找间接参数扩展。其他一些说明:
#!/bin/bash
,而不是#!/bin/sh
;这需要bash
。$[...]
;这是一种过时的语法。使用$((...))
。#!/bin/bash
start1="08:00:00"
start2="09:00:00"
start3="09:00:00"
i=1
while [ "$i" -lt 4 ]; do
startx=start$i
if [[ "$timestamp" == "${!startx}" ]]; then
echo "time is common with ${!startx}"
fi
i=$(($i+1))
done
答案 1 :(得分:-1)
您需要使用an array,而不是以这种方式命名变量。
答案 2 :(得分:-1)
eval startx=\"\$start$i\"