编写一个shell脚本,可以提示用户输入三个整数,再根据输入数字大小按照从小到大排序输出这三个数字
时间: 2023-08-04 18:29:15 浏览: 453
好的,下面是实现此功能的shell脚本:
```bash
#!/bin/bash
echo "请输入三个整数:"
read num1 num2 num3
if [ $num1 -gt $num2 ]; then
tmp=$num1
num1=$num2
num2=$tmp
fi
if [ $num1 -gt $num3 ]; then
tmp=$num1
num1=$num3
num3=$tmp
fi
if [ $num2 -gt $num3 ]; then
tmp=$num2
num2=$num3
num3=$tmp
fi
echo "从小到大排序的结果为:$num1 $num2 $num3"
```
你可以在终端运行此脚本,输入三个整数,它将按照从小到大的顺序输出这三个数字。
相关问题
能否用linux语言让用户输入若干个数字,并且打印用户输入的数字的序列,然后通过循环将数字序列从小打大输出出来(需要检查用户输入的数字是否为整数)
是的,您可以使用Linux的Bash shell语言来实现这个任务。以下是一个示例脚本,它将提示用户输入数字,打印数字序列,检查数字是否为整数,然后通过循环将数字序列从小到大输出。
```bash
#!/bin/bash
echo "请输入若干个数字,每个数字用空格隔开:"
read input
# 将用户输入的字符串转换为数组
arr=($input)
# 打印用户输入的数字序列
echo "您输入的数字序列为: ${arr[@]}"
# 循环检查数字是否为整数
for i in "${arr[@]}"
do
if ! [[ "$i" =~ ^[0-9]+$ ]]
then
echo "输入的数字 $i 不是整数"
exit 1
fi
done
# 对数组进行排序
sorted=($(printf '%s\n' "${arr[@]}" | sort -n))
# 打印排序后的数字序列
echo "排序后的数字序列为: ${sorted[@]}"
```
您可以在终端上运行上述代码,然后按照提示输入数字,程序将会打印用户输入的数字序列,并输出排序后的数字序列。
编写shell脚本test05.sh实现将输入的参数(参数均为正整数)按照从小到大的顺序写入到当前目录中的mytest05中的con.txt文件中。
以下是实现要求的test05.sh脚本代码:
```
#!/bin/bash
# 判断参数个数是否为0
if [ $# -eq 0 ]; then
echo "请至少输入一个参数"
exit 1
fi
# 判断输入的参数是否为正整数
for arg in $@; do
if ! echo "$arg" | grep -q '^[0-9]\+$'; then
echo "输入的参数 $arg 不是正整数"
exit 1
fi
done
# 将参数按从小到大的顺序排序
args=$(echo "$@" | tr ' ' '\n' | sort -n | tr '\n' ' ')
# 写入到文件中
echo "$args" > mytest05/con.txt
echo "已将参数按从小到大的顺序写入到 mytest05/con.txt 文件中"
```
脚本的执行流程如下:
1. 首先判断参数个数是否为0,如果是,则输出提示信息并退出脚本;
2. 判断输入的参数是否为正整数,如果不是,则输出提示信息并退出脚本;
3. 将输入的参数按从小到大的顺序排序;
4. 将排序后的参数写入到 mytest05/con.txt 文件中;
5. 输出提示信息。
注意:在执行脚本之前,需要先创建 mytest05 目录。