bash /循环后变量值为空

El *_*opo 1 variables bash loops

我是新手bash并尝试一个简单的循环,但我的变量的值在它之后丢失,我无法理解为什么 - 我看了几个类似的问题,但它们都与while循环的子shell执行有关.我不是在做但仍面临问题 - 有人可以解释我的错误在哪里?

#!/bin/bash

check_ss ()    
{    

command_list | awk '{print $1 $9}' > ss.out    

 for i in {1..8}    
            do grep -Pa "\x3$i" ss.out > ss$i.out   
                    if grep -w "NotStarted" ss$i.out   
                            then   
                                   ss$i=0   
                            else    
                                ss$i=1    
                    fi   
done   
}   
check_ss      
echo $ss1     
echo $ss2    
echo $ss3    
echo $ss4    
Run Code Online (Sandbox Code Playgroud)

我正在执行这个:

[root@lubo ~]# ./ss.sh    
./ss.sh: line 21: ss1=1: command not found     
./ss.sh: line 21: ss2=1: command not found      
./ss.sh: line 21: ss3=1: command not found      
./ss.sh: line 21: ss4=1: command not found      
./ss.sh: line 21: ss5=1: command not found      
./ss.sh: line 21: ss6=1: command not found     
./ss.sh: line 21: ss7=1: command not found     
./ss.sh: line 21: ss8=1: command not found   
Run Code Online (Sandbox Code Playgroud)

提前致谢

che*_*ner 5

您需要使用declare动态构造变量名称.

declare "ss$i=0"
Run Code Online (Sandbox Code Playgroud)