7

コマンド ライン引数を 1 行に 1 つずつ並べ替えて出力する bash スクリプトを作成する必要があります。

私はこのスクリプトを書きましたが、問題なく動作しますが、他に方法はありますか? 特にファイルに出力してソートせずに。

#!/bin/bash

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

sort file
rm file

プログラムのテスト実行:

$ script hello  goodbye zzz aa
aa
goodbye
hello
zzz
4

2 に答える 2

17

forループをパイプしてソートするか、単に行うことができます

printf '%s\n' "$@" | sort
于 2012-07-17T17:14:41.747 に答える
10
#!/bin/bash

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

次のように、スペースを含む引数に対応するため$@に ( の代わりに) 引用符で囲みます。$*

script hello "goodbye, cruel world"

パイプは、一時ファイルの必要性を取り除きます。

于 2012-07-17T17:15:10.490 に答える