有没有办法创建 bash 变量并通过循环为其赋值?
大致如下:
#!/bin/bash
c=0
for file in $( ls ); do
var"$c"="$file";
let c=$c+1;
done
编辑:感谢@Costas 和@mdpc 指出这将是一个糟糕的列表替代方案;这个问题只是理论上的。
答案1
嗯,你绝对可以使用评估如下:
c=0
for file in $( ls ); do
eval "var$c=$file";
c=$((c+1));
done
此代码将创建名为 var0、var1、var2...的变量,每个变量都保存文件名。我想你有充分的理由想要通过使用数组来做到这一点......
答案2
可能你指的是数组。有一些赋值方法
第一的:
c=0
for file in $( ls ); do
var[$c]="$file";
c=$(($c+1));
done
第二:
c=0
for file in $( ls ); do
var[c++]="$file";
done
第三:
for file in $( ls ); do
var[${#var}]="$file";
done
第四:
var=( $(ls) )
第五
...
- 不需要使用
ls
,只需放置*
所有文件 []
标志里面$
可以省略