gpt4 book ai didi

linux - 在 Korn Shell 的 for 循环中为变量赋值

转载 作者:太空宇宙 更新时间:2023-11-04 11:32:20 26 4
gpt4 key购买 nike

我在尝试为循环中的变量赋值时遇到问题。这就像在变量中使用变量一样。所以我创建了一个数组来添加值仍然是不正确的。

请看一下下面的 KornShell (ksh) 脚本,让我知道我哪里搞砸了

#!/usr/bin/ksh
set -A array $1 $2 $3
set -A values
typeset -i a

a=0;
for files in ${array[@]}
do
cd ~/shell_lib
ls | grep $files
${values[$a]}="$(cksum $files)"
a=$a+1
done

echo ${values[@]}

输出


$ ./intarray.sh forall.sh name.sh 
forall.sh
./intarray.sh[12]: =3311936491 251 forall.sh: not found
name.sh
./intarray.sh[12]: =3294813710 338 name.sh: not found

文件在那里并且已经完成校验和,但仍然说找不到!我不明白哪里错了!有什么见解吗?

最佳答案

${values[$a]}="$(cksum $files)"

这几乎肯定不是您想要的。尝试:

values[$a]="$(cksum $files)" 

${array[index]} 指的是(仍为空)数组条目的 value,因此原始行导致 shell 尝试执行 ="$(cksum $files)"

关于linux - 在 Korn Shell 的 for 循环中为变量赋值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10320830/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com