2016-05-28 8 views
0

3つの整数引数をとり、最小から最大まで出力するBashシェルスクリプトを書く必要があります。私はLinuxに慣れていないので、自分のプログラムで経験しているエラーについてはわかりません。これは私がこれまでに持っていたものですが、私が何を変えても決してうまくいかないようです。linux(bash)で注文スクリプトを書いてみたい

#!/bin/bash 
read x y z 

if [ $x -lt $y && $x -lt $z ] ; then 
    if [ $y -gt $z ]; then 
     echo "$x $z $y" 
    else 
     echo "$x $y $z" 

if [ $y -lt $x && $y -lt $z ] ; then 
    if [ $x -gt $z ]; then 
     echo "$y $z $z" 
    else 
     echo "$y $x $z" 

    if [ $z -lt $x && $z -lt $y ] ; then 
     if [ $z -gt $y ]; then 
      echo "$z $y $x" 
     else 
      echo "$z $x $y" 
fi 

助けてください。あなたの時間をありがとう。

+0

'' fi'があるはずですif'。 – Biffen

+2

ご覧ください:http://www.shellcheck.net/ – Cyrus

答えて

3

それはちょうど1行Bashコードのスクリプトです:すべてのために

#!/bin/bash 
echo $* | tr ' ' '\n' | sort -n | tr '\n' ' ' 
+1

'echo $ * | tr '' '\ n''は 'printf'と書くことができます%d \ n" "$ @" '...プロセスを保存します。 – anishsane

+0

@anishsane printfが良いです、 printf "%d \ n" "$ *" |ソート-n | tr '\ n' '' 「$ @」ではなく「$ *」ですか? –

+0

この文脈では(すべての引数は数字だけです)、 '' $ @ "'、 '$ @'や '$ *'を使うことはできますが、 '' $ * "'は使うことはできません。 – anishsane

関連する問題