shell脚本如何判断输入的参数是不是正整数
时间: 2023-07-17 11:04:02 浏览: 86
你可以使用正则表达式来判断输入的参数是否为正整数。这里是一个示例的Shell脚本:
```shell
#!/bin/bash
# 判断参数个数是否为1
if [ $# -ne 1 ]; then
echo "请输入一个参数"
exit 1
fi
# 利用正则表达式判断参数是否为正整数
if [[ $1 =~ ^[1-9][0-9]*$ ]]; then
echo "参数是一个正整数"
else
echo "参数不是一个正整数"
fi
```
在这个脚本中,首先判断参数的个数是否为1,如果不是,则提示用户输入一个参数,并退出脚本。接下来,使用正则表达式判断参数是否符合正整数的规则。正则表达式`^[1-9][0-9]*$`表示以1-9之间的数字开头,后面可以跟0个或多个数字。如果参数匹配该正则表达式,则输出"参数是一个正整数",否则输出"参数不是一个正整数"。
你可以在命令行中执行这个脚本并传入参数进行测试。例如,`./script.sh 123`会输出"参数是一个正整数",而`./script.sh abc`会输出"参数不是一个正整数"。
相关问题
shell脚本十进制正整数转二进制
可以使用以下的 Shell 脚本将十进制正整数转换为二进制:
```bash
#!/bin/bash
echo "请输入十进制正整数:"
read decimal
# 使用 bc 命令将十进制转换为二进制
binary=$(echo "obase=2;$decimal" | bc)
echo "转换结果为:$binary"
```
运行脚本后,输入十进制正整数,即可输出对应的二进制数。
shell脚本 显示输入个数的斐波那契数列
好的,以下是实现这个功能的 Shell 脚本代码:
```bash
#!/bin/bash
# 获取用户输入的数
read -p "请输入一个正整数:" n
# 定义斐波那契数列的前两个数
a=0
b=1
# 循环输出斐波那契数列的前 n 个数
for ((i=0; i<n; i++))
do
echo -n "$a "
fn=$((a + b))
a=$b
b=$fn
done
echo
```
你可以将这段代码保存为一个 .sh 文件,并在终端中运行,输入一个正整数即可显示对应个数的斐波那契数列。