[英]How can we read data from txt file and use that data in my code in Bash? This Not about comparing string
[英]Comparing string read from csv file
我正在尝试比较if条件下从csv文件读取的字符串。 以下是我编写的示例代码:
export IFS="~"
while read a b c
do
echo "line Num:$a"
if [ "$b"=="sat" ];then
echo "Its saturday"
echo $c
elif [ "$b"=="sun" ];then
echo "Its sunday"
echo $c
else
echo "Its weekday"
echo $c
fi
done < "$1"
下面是csv文件:
1~sat~enjoy
2~sun~enjoy
3~mon~work
4~tue~work
5~sun~enjoy
以下是我得到的输出:
line Num:1
Its saturday
enjoy
line Num:2
Its saturday
enjoy
line Num:3
Its saturday
enjoy
line Num:4
Its saturday
enjoy
line Num:5
Its saturday
enjoy
需要以下输出:
line Num:1
Its saturday
enjoy
line Num:2
Its sunday
enjoy
line Num:3
Its weekday
work
line Num:4
Its weekday
work
line Num:5
Its sunday
enjoy
任何想法如何实现这一目标?
尝试
export IFS="~"
while read a b c
do
echo "line Num:$a"
if [ "$b" = "sat" ];then
echo "Its saturday"
echo $c
elif [ "$b" = "sun" ];then
echo "Its sunday"
echo $c
else
echo "Its weekday"
echo $c
fi
done < "$1"
不要使用"$foo"=="$bar"
因为bash只会看到一个令牌。
你也可以尝试
case "$b" in
sat) echo "It's saturday" ;;
sun) echo "It's sunday" ;;
*) echo "It's weekday" ;;
esac
echo $c
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.