Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/variables/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash &引用;导出:`=';:“不是有效的标识符”;导出变量时_Bash_Variables - Fatal编程技术网

Bash &引用;导出:`=';:“不是有效的标识符”;导出变量时

Bash &引用;导出:`=';:“不是有效的标识符”;导出变量时,bash,variables,Bash,Variables,我试图读取一个文件,每行将第二个参数转换成一个变量,并将第一个参数存储在该变量中 我有以下代码: while read i do V1=$(echo $i |awk '{print $2}') V2=$(echo $i |awk '{print $1}') export $V1=$V2 done < test echo $a echo $b echo $c 当我读的时候 做 V1=$(echo$i|awk'{print$2}') V2=$(echo$

我试图读取一个文件,每行将第二个参数转换成一个变量,并将第一个参数存储在该变量中

我有以下代码:

while read i  
do  
 V1=$(echo $i |awk '{print $2}')  
 V2=$(echo $i |awk '{print $1}')  
export $V1=$V2  
done < test  

echo $a  
echo $b  
echo $c
当我读的时候
做
V1=$(echo$i|awk'{print$2}')
V2=$(echo$i|awk'{print$1}')
导出$V1=$V2
完成<测试
回音$a
回音$b
回声$c
当它工作时,它给了我一个错误:
“导出:`=':不是有效的标识符”
如果我从导出行中删除$,则代码不起作用(a、b、c没有值)

我怎样才能使它工作,没有错误?(稍后我确实需要a、b、c变量及其值)
以下是文件内容:
10A
20b

60 c

赋值后能否分别回显V1和V2,并检查其中是否保存了空格字符

“导出:`=':不是有效的标识符”
通常在shell试图将其解释为导出三个名称的请求时出现:10、=和a.=不是有效的变量名,因此命令失败。

您不需要所有
awk
内容
read
可以为您进行拆分,例如,read-r v k时
;导出“$k=$v”;完成
至于错误:可能是文件包含空行吗?使用
bash-x
(或在顶部附近添加
set-x
)运行脚本以查看发生了什么。(OT:我可以推荐吗?它将向您显示代码中的一些潜在问题。)谢谢@Biffen,显然,在最后一行之后有一个空行。或者当
$V1
$V2
为空时,命令被展开为
export=
显然输入文件中有问题。在最后一行之后有一行空行。当我澄清错误消失时。