按排序顺序输出参数

时间:2012-07-17 17:12:05

标签: bash sorting

我需要编写一个bash脚本,按排序顺序打印出命令行参数,每行一个。

我写了这个脚本,它工作正常,但还有其他方法吗?特别是没有将其输出到文件和排序。

#!/bin/bash

for var in $*
do
    echo $var >> file
done

sort file
rm file

程序的测试运行:

$ script hello  goodbye zzz aa
aa
goodbye
hello
zzz

2 个答案:

答案 0 :(得分:14)

你可以管道for循环进行排序,或者只做

printf '%s\n' "$@" | sort

答案 1 :(得分:9)

#!/bin/bash

for var in "$@"; do
    echo "$var"
done | sort

您希望在引号中使用$@(而不是$*)来容纳带空格的参数,例如

script hello "goodbye, cruel world"

管道无需临时文件。