Linux 在shell中调用Porperty的正确语法是什么

Linux 在shell中调用Porperty的正确语法是什么,linux,bash,shell,unix,aix,Linux,Bash,Shell,Unix,Aix,我正在尝试运行以下脚本: #!/bin/sh . ./test.prop for ((i=0; i<10;i++) do echo $F($i) done 脚本所需的输出将是 10 20 30 40 . . . $F($i)的正确语法是什么?或者我不能简单地使用它?您可以使用间接参数展开: for ((i=0; i<10; i++)); do f="F$i" echo "${!f}" done 对于((i=0;i您可能应该使用eval: eval

我正在尝试运行以下脚本:

#!/bin/sh
. ./test.prop

for ((i=0; i<10;i++)
do
    echo $F($i)
done  
脚本所需的输出将是

10
20
30
40
.
.
.

$F($i)
的正确语法是什么?或者我不能简单地使用它?

您可以使用间接参数展开:

for ((i=0; i<10; i++)); do
    f="F$i"
    echo "${!f}"
done

对于((i=0;i您可能应该使用
eval

eval "echo \$F$i"
Eval用于计算并运行命令,允许您动态生成命令。通过转义第一个美元符号,可以在生成的命令中显式使用它,而注意转义第二个美元符号可以将其值扩展为用于生成变量名的数字。因此,假设
$i
conta在值“1”中,生成的命令是
echo$F1


希望这有帮助=)

您可以使用grep命令:

grep ^F prop.test | awk -F= '{print $2}'

这将使以
F
开头的所有行变灰,并在
=

后面打印数字。为什么不使用数组

F=(10 20 30 ...)


什么是
F
?您是从文件中读取数字还是只想使用循环打印?关于test.prop文件中的数字,所以我想使用循环打印所有F…所以echo$F1…echo$F2…哇,这正是我想要的…感谢解释和回答!
F=(10 20 30 ...)
for i in {0..9}; do
    echo ${F[i]}
done