我正在尝试在BASH中编写一个脚本,该脚本将从用户获取1到5个命令行参数,并以相反的数字顺序将其报告回标准输出。我知道的唯一一条与此类似的命令是sort命令,但这只适用于文件。是否有类似的命令排序命令行参数?这是我到目前为止。是否有一个命令可用于命令行参数,如sort命令对文件的操作?
#!/bin/bash
if [ $# -lt 1 ] || [ $# -gt 5 ];
then echo "Incorrect number of arguments!"
else
sorted=sort -rn $*
echo "SORTED: $sorted"
fi
+1。像这样使用printf是最安全,最简洁的方式来输出每行一行的列表。为了将它们作为单行输出,我会试图忽略我自己的赞美,并且只是'echo $ sorted'(不带任何引号) - 或'sorted =($(print ... | sort)); printf“%s”“$ {sorted [@]}”' –
谢谢!或者:'sorted =($(printf'%s \ n'“$ @”| sort -nr)); printf'%s \ n'“$ {sorted [*]}”'。 –