Database BASH:使用“let”递增变量

Database BASH:使用“let”递增变量,database,bash,let,Database,Bash,Let,我想问你们是否知道我该如何修改我的脚本。 我想肯定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"

我想问你们是否知道我该如何修改我的脚本。 我想肯定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  

有几种方法可以在bash中增加变量:

# one way
a=$((a+1))

# or even just
((a++))

# using "let"
let "a=a + 1"
回答你的评论,你可以这样做

${name1}_$((a++))


根据您是想在回显之前还是之后增加变量。

在bash中增加变量有几种方法:

# one way
a=$((a+1))

# or even just
((a++))

# using "let"
let "a=a + 1"
回答你的评论,你可以这样做

${name1}_$((a++))


取决于您是想在回显变量之前还是之后增加该变量。

在脚本的最顶端有以下声明:

a=1
这似乎是问题的根源。变量应声明为整数,这有两种实现方式:

declare -i a

可以使用另一个let声明或双parens表示法进行进一步的运算,其中不必像for循环中那样始终使用$prefix:


在脚本的最顶端有一个声明:

a=1
这似乎是问题的根源。变量应声明为整数,这有两种实现方式:

declare -i a

可以使用另一个let声明或双parens表示法进行进一步的运算,其中不必像for循环中那样始终使用$prefix:


你想增加a吗?如果你想增加a,你可以用这个:让a=a+1是的,但它不起作用。。。另外,当我尝试递增i:let i=i+1时,我得到一个错误。你是用/bin/bash还是用/bin/sh运行这个脚本?你想递增a吗?如果你想递增a,你可以用这个:let a=a+1是的,但它不起作用。。。另外,当我尝试递增i:let i=i+1时,我得到一个错误,您是使用/bin/bash还是使用/bin/sh运行此脚本?正在尝试这样做。。。echo${name1}uA++>>foo.sh但是:意外标记“%user305730”附近的语法错误,echo${name1}{uA++>>foo.sh-当您想要处理一个算术表达式但不想要结果时使用,当您想要像扩展variable@user3057030没问题。你应该考虑编辑你的问题来补充你在评论中提供的信息。echo${name1}uA++>>foo.sh但是:意外标记“%user305730”附近的语法错误,echo${name1}{uA++>>foo.sh-当您想要处理一个算术表达式但不想要结果时使用,当您想要像扩展variable@user3057030没问题。你应该考虑编辑你的问题来添加你在评论中提供的信息。