我是一名新手,今晚刚开始做一些简单的剧本.这是一个来自HackerRank的超级简单的任务,但是我无法理解为什么我的解决方案不起作用并且相信我,我尝试过很多.输入只是一个字母,'y','Y','n'或'N','y'和'Y'的输出应为'YES','N'和'n'的输出应为'NO' .我的解决方案在这里:
read letter
if (($letter == "y"))
then
echo "YES"
elif (($letter == "Y"))
then
echo "YES"
else
echo "NO"
fi
Run Code Online (Sandbox Code Playgroud)
但仍然输出总是'YES',即使对于像'G'这样的随机字母也是如此.我不知道这个freaknig bash是如何工作的,请有人向我解释一下!
((...))
用于算术.对于字符串比较,使用[[ ... ]]
,[ ... ]
或test
.(注意括号内的空格.它们不是可选的.)
if [[ $letter == "y" ]]
then
echo "YES"
elif [[ $letter == "Y" ]]
then
echo "YES"
else
echo "NO"
fi
Run Code Online (Sandbox Code Playgroud)
您也可以使用case
块来执行此操作.
case $letter in
[yY]) echo "YES";;
*) echo "NO";;
esac
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
64 次 |
最近记录: |