命令返回变量

Jai*_*chi 0 unix shell for-loop file variable-assignment

我在尝试从外部文件中获取变量值时遇到问题.我的问题是:是否有可能从for中读取文件中的值然后使用cut命令我可以在=之前得到信息,这将是变量之后的=将是值.这是我在下面尝试但不允许的:

for i in `cat $1`
do
    `echo $i | cut -d= -f1`=`echo $i | cut -d= -f2`
done
Run Code Online (Sandbox Code Playgroud)

$ 1是作为参数传递的文件,它有3行,其中行有一个变量,格式值为variable = value.有没有办法我可以这样做,而不是需要获取变量名称,然后另一个条件为这些变量的值?或者即使我的代码是正确的,但只需要改变一些东西.

Yur*_*rov 5

尝试:

source $1
Run Code Online (Sandbox Code Playgroud)

例:

$ cat file.txt 
var1=123
var2=234

$ cat my.sh 
#!/bin/bash
source $1
echo $var1

$ ./my.sh file.txt 
123
Run Code Online (Sandbox Code Playgroud)

如果"for"循环对您来说非常重要,请使用"let".

for i in `cat $1`
do
    let `echo $i | cut -d= -f1`=`echo $i | cut -d= -f2`
done
Run Code Online (Sandbox Code Playgroud)