tox*_*efa 13 shell bash shell-script
有没有办法创建 bash 变量并通过循环为它们赋值?
类似的东西:
#!/bin/bash
c=0
for file in $( ls ); do
var"$c"="$file";
let c=$c+1;
done
Run Code Online (Sandbox Code Playgroud)
编辑:感谢@Costas 和@mdpc 指出这将是一个糟糕的列表替代方案;这个问题只是理论上的。
Bic*_*hoy 15
好吧,你绝对可以使用eval如下:
c=0
for file in $( ls ); do
eval "var$c=$file";
c=$((c+1));
done
Run Code Online (Sandbox Code Playgroud)
这段代码将创建名为 var0, var1, var2, ... 的变量,每个变量都保存文件名。我假设你有一个很好的理由想要通过使用数组来做到这一点......
可能你的意思是数组。有一些方法可以赋值
c=0
for file in $( ls ); do
var[$c]="$file";
c=$(($c+1));
done
Run Code Online (Sandbox Code Playgroud)
c=0
for file in $( ls ); do
var[c++]="$file";
done
Run Code Online (Sandbox Code Playgroud)
for file in $( ls ); do
var[${#var}]="$file";
done
Run Code Online (Sandbox Code Playgroud)
var=( $(ls) )
Run Code Online (Sandbox Code Playgroud)
...
ls
,只需放入*
所有文件[]
的$
标志可中省略