如何解析文本文件中的值并为shell脚本参数分配

时间:2015-08-25 14:24:42

标签: shell sh

我在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。有人帮忙吗?

1 个答案:

答案 0 :(得分:2)

您正在子shell中运行while循环;使用输入重定向而不是cat

while read Param; do
  ...
done < sample.txt

(另外,Var1=$ParamVar1=$(echo $Param)简单得多。)

但是,如果您提前知道要设置多少变量,那么使用while循环是没有意义的;只需直接使用正确数量的read命令。

{ read Var1; read Var2; read Var3; } < sample.txt