我在sample.txt中存储了一些参数值
1 >> sample.txt
2 >> sample.txt
3 >> sample.txt
我试图在shell脚本文件中解析sample.txt以收集并将值分配给特定变量。
#!/bin/sh
if [ -f sample.txt ]; then
cat sample.txt | while read Param
do
let count++
if [ "${count}" == 1 ]; then
Var1=`echo ${Param}`
elif [ "${count}" == 2 ]; then
Var2=`echo ${Param}`
else
Var3=`echo ${Param}`
fi
done
fi
echo "$Var1"
echo "$Var2"
echo结果不打印任何内容。我希望打印1和2。有人帮忙吗?
答案 0 :(得分:2)
您正在子shell中运行while循环;使用输入重定向而不是cat
:
while read Param; do
...
done < sample.txt
(另外,Var1=$Param
比Var1=$(echo $Param)
简单得多。)
但是,如果您提前知道要设置多少变量,那么使用while
循环是没有意义的;只需直接使用正确数量的read
命令。
{ read Var1; read Var2; read Var3; } < sample.txt