我正在创建的bash中有这种输入:
猫狗狮子
我需要我的程序对像这样的每个单词做一些事情
`if first_word == "cat"
do stuff
if second_word == "dog"
do other stuff`
我应该怎么做? 谢谢
答案 0 :(得分:0)
BASH解决方案:
valueOf()
如果要在此处使用AWK解决方案,则为:
input='cat-dog-lion'
if [[ "${input}" =~ "^cat-?" ]]
then
echo "do stuff"
if [[ "${input}" =~ "^cat-dog-?" ]]
then
echo "do other stuff"
fi
fi
测试:
awk -F'-' '{ if ($1=="cat") { print("do stuff"); if ($2=="dog") print("do other stuff"); } }'
答案 1 :(得分:-1)
如果输入字段分隔符是-
,则应在适当设置IFS的情况下调用read
:
echo 'cat-dog-lion' | { IFS=- read first_word second_word third_word other_stuff
case $first_word in
cat) ... ;;
*) ... ;;
esac
case $second_word in
...
esac
...
}
请注意,包围{
和}
很重要,因为变量在闭合{
之后超出范围。 (管道创建了一个存在变量的子流程。)