脚本(input.sh):
echo "What is your name?"
if [[ $1 =~ "*" ]]
then
read name1
read name2
echo "Are you really "$name1 "??? or" $name2 "?"
else
echo "Are you really "$1 "??? or" $2 "?"
fi
我想要的是如果我运行以下命令:./input.sh fahad Eclipse
然后它应该打印:
What is your name?
Are you really fahad ??? or Eclipse ?
另外,如果我这样做:./input.sh
然后它应该要求我输入,然后打印该行。
我怎样才能做到这一点 ?
答案1
由于 if 语句,您的脚本无法正确执行,下面的代码应该可以工作。它需要 2 个参数,否则它会询问 name1 和 name2。
if 语句包含“$#”,用于计算给定的参数数量。后面的“-ne”是“不等于”的比较运算符。最后一个数字表示您期望的数量。因此,在我们的例子中,我们正在寻找正好 2,如果给出 1 或 4,则将执行 else 语句。
#!/bin/bash
echo "What is your name?"
if [[ $# -ne 2 ]] ; then
read name1
read name2
echo "Are you really "$name1 "??? or" $name2 "?"
else
echo "Are you really "$1 "??? or" $2 "?"
fi