我需要編寫一個bash腳本,它以排序順序輸出其命令行參數,每行一個。按排序順序輸出自變量
我寫了這個腳本,它工作正常,但有沒有其他方式?特別是不輸出到文件和排序。
#!/bin/bash
for var in $*
do
echo $var >> file
done
sort file
rm file
程序的測試運行:
$ script hello goodbye zzz aa
aa
goodbye
hello
zzz
我需要編寫一個bash腳本,它以排序順序輸出其命令行參數,每行一個。按排序順序輸出自變量
我寫了這個腳本,它工作正常,但有沒有其他方式?特別是不輸出到文件和排序。
#!/bin/bash
for var in $*
do
echo $var >> file
done
sort file
rm file
程序的測試運行:
$ script hello goodbye zzz aa
aa
goodbye
hello
zzz
#!/bin/bash
for var in "[email protected]"; do
echo "$var"
done | sort
你想在引號使用[email protected]
(而不是$*
)以適應空格的參數,如
script hello "goodbye, cruel world"
該管道擺脫了臨時文件的需要。
可以通過管道for循環進行排序,或者只是做
printf '%s\n' "[email protected]" | sort
我總是忘記'printf'提供的隱式循環。 – chepner 2012-07-17 17:16:02
'$ var'也需要引號,否則將在變量擴展後嘗試分詞和路徑名擴展。 – geirha 2012-07-17 17:57:45
好點,我只是想着整條線路被整理。 – chepner 2012-07-17 18:05:34
@chepner,如何根據決定輸入大小的第一個參數對下列參數進行排序? – ThisGuy 2013-12-04 14:58:03