我想问一下你们是否知道如何修复我的剧本。 我想用let命令做好准备.. 任何想法?
a=1
read -p "Enter any number: " COUNTER
until [ 1 -eq $COUNTER ]; do
echo "What is the name for $COUNTER ?"
read name1
START=$COUNTER
END=1
for i in $START
do
echo "$i"
echo ${name1}_$i: >> foo.sh
done
echo COUNTER $COUNTER
let a\+=1
done
答案 0 :(得分:3)
有几种方法可以在bash中增加变量:
# one way
a=$((a+1))
# or even just
((a++))
# using "let"
let "a=a + 1"
回答你的评论,你可以做到
${name1}_$((a++))
或
${name1}_$((++a))
取决于您是想在之前增加变量,还是在 echo
之后增加。
答案 1 :(得分:1)
在脚本的最顶部有声明:
a=1
这似乎导致了这个问题。变量应该声明为整数,这可以通过两种方式实现:
declare -i a
或
let a=1
可以使用另一个let
声明或双重表示法进行进一步的算术运算,其中$
前缀并不总是像for
循环一样使用:
for ((i=0; i<10; ++i)); do
echo "i=$i"
done