我写以下命令:
#!/bin/bash
echo "Enter values a and b (separate with space)"
read a b
echo $#
我想计算用户输入了多少个参数。我尝试使用$#
进行计数,但输出为0
。
出什么问题了?我在做什么错了?
答案 0 :(得分:7)
您可以使用数组读取整行并计算#个单词:
read -p "Enter values (separate with space): " -ra arr
Enter values (separate with space): abc foo bar baz 123
然后打印字数:
echo "No of words: ${#arr[@]}"
No of words: 5
答案 1 :(得分:1)
这就是我可能会做的,而无需考虑太多。使用伪c
变量是很棘手的,但是我发现bash数组更加笨拙。
read -r a b c
if [[ $c ]]
then
echo "To much arguments"
elif [[ $a && $b ]]
echo "Correct - 2 arguments"
else
echo "Not enough arguments"
fi