我有以下shell脚本:
#!/bin/bash
if [ "`read -n 1`" == "c" ] ; then
printf "\nfoo\n"
exit 0
fi
printf "\nbar\n"
exit 0
但是,无论输入如何,我总是得到bar
作为输出:
$ ./test.sh
c
bar
$ ./test.sh
d
bar
为什么会出现这种情况,我需要在shell脚本中进行哪些更改?
答案 0 :(得分:3)
您需要先将其读入变量,否则您只是比较读取的output value
(这是空值)。
以下应该工作:
#!/bin/bash
read -n 1 ch
if [ "$ch" == "c" ] ; then
printf "\nfoo\n"
exit 0
fi
printf "\nbar\n"
exit 0