【发布时间】:2021-12-16 13:56:53
【问题描述】:
我在 Unix 中创建一个程序,我从用户那里获取三个输入(更具体地说,三个名字),我需要按字母顺序输出它们。我有一个嵌套条件,但它不起作用,我尝试了很多变化,但我不确定我错过了什么......这是我到目前为止所拥有的:
#!/bin/bash
echo -n "Enter a friend's name: "
read n1
echo -n "Enter another friend's name: "
read n2
echo -n "Enter a third friend's name: "
read n3
if [[ $n1 < $n2 ]]
then
if [[ $n3 < $n1 ]]
then
echo $n3 $n1 $n2
elif [[ $n3 < $n2 ]]
then
echo $n1 $n3 $n2
else
echo $n1 $n2 $n3
fi
fi
if [[ $n1 < $n3 ]]
then
if [[ $n2 < $n1 ]]
then
echo $n2 $n1 $n3
elif [[ $n3 < $n2 ]]
then
echo $n3 $n2 $n1
else
echo $n2 $n3 $n1
fi
fi
我相信我的问题来自这样一个事实,即当我输入一个名字时,例如,一开始是 Zoe,它会变得一团糟。
谢谢
【问题讨论】:
-
排序并转换回单行:
printf "%s\n" "$n1" "$n2" "$n3" | sort | tr '\n' ' '
标签: bash unix conditional-statements