我查过Looping over arrays, printing both index and value了。问题是我想循环命令的输出,而不是数组。
我想出的代码是:
array=($(seq 1 10))
for i in "${!array[@]}"; do
printf "%s\t%s\n" "$i" "${array[$i]}"
done或,
ITER=0
for I in $(seq 1 10)
do
echo ${I} ${ITER}
ITER=$(expr $ITER + 1)
done我想知道的是,是否有可能只在循环内(没有array或ITER)在循环之外执行?
我要找的是:
for index,value in $(seq 1 10); do
echo $index $value
done发布于 2022-08-19 07:20:42
请告知您的实际需求:
01)
#!/bin/bash
index=0
for filename in $(ls -atr)
do
indx=$(($indx+1))
echo "Index: $indx $filename"
done产出:
$ ./73412398.sh
Index: 1 ..
Index: 2 73412398.sh
Index: 3 .再试一次:
for index in $(ls -atr | grep -n $)
do
echo $index | sed "s/\([0-9]*\):/\1 /;"
done产出:
1 ..
2 73412398.sh
3 .发布于 2022-08-19 07:39:28
修改了murugesan的答案后,我的解决方案是:
for indexval in $(ls -atr | grep -n $)
do
echo index is "${indexval%%:*}"
echo value is "${indexval#*:}"
donehttps://stackoverflow.com/questions/73412398
复制相似问题