2012-01-04 15 views
1

スクリプト。条件の使用

私は次のようにこれを実行しようとしましたが、動作しません:

less file \ 
| awk '\ 
    function abs(x){return (((x < 0.0) ? -x : x) + 0.0)}\ 
    BEGIN{i=1;}\ 
    {new=old;old=$1}\ 
    {if(abs($1-new)>1)i++;} 
    END{if(i>1) print 1; else print 0;}' \ 
| while read i;do 
if ((${i}));then 
echo -n "Would you like to continue? [yes or no]: " 
read yno 
    case ${yno} in 
     y) 
      echo Continuing... 
      ;; 
     n) 
      echo Exiting... 
      ;; 
     *) 
      echo "Invalid input" 
      ;; 
    esac 
else echo Cont... 
fi 
done 

私は$ {I} == 1場合は、その後、私は私がしたいかどうか、決定をすることができることを、期待します続行するかしないか。あなたがもし$ {I} == 1、

はい、しかし、どのような場合は$ {I} = "入力のエラー" または他のいくつかのことを、私は期待

を書いた

+0

便利です。なぜあなたは減算を行い、終了コードがawkの外部で何が起こるかを判断することができません。 「しかし動作しません」と言うと、質問を編集してどのようなエラーメッセージが表示されるのか、なぜそれが動作していないのかを示してください。それはうまくいくように見えます。がんばろう。 – shellter

答えて

1

あなたのステートメントはあなたの状態を明示的に述べる必要があります。また、パイプにファイルを送信するための標準的な状況をあまりされていない使用して、なぜだけで、処理のためにawkのためにファイル名を渡すことはなく、すなわち

awk '\ 
    function abs(x){return (((x < 0.0) ? -x : x) + 0.0)}\ 
    BEGIN{i=1;}\ 
    {new=old;old=$1}\ 
    {if(abs($1-new)>1)i++;} 
    END{if(i>1) print 1; else print 0;}' file1 \ 
    | while read i;do 
if (("${i}" == 1));then 
echo -n "Would you like to continue? [yes or no]: " 
read yno 
. . . 

私は、これは問題があるということ

0

役に立てば幸い入力はawkスクリプトによって完全に消費されたものからのものです。コンソールは使用できません。このような

何かは、あなたが「あなたは...です」促すことにより、あなたの意図を明確にすることができた場合、これらのソリューションは、支援していない場合、あなたの問題を解決するためにハッピー

i=$(awk 'function abs(x){return (((x < 0.0) ? -x : x) + 0.0)}BEGIN{i=1;}{new=old;old=$1}{if(abs($1-new)>1)i++;}END{if(i>1) print 1; else print 0;}' file) 
if ((${i}));then 
    echo -n "Would you like to continue? [yes or no]: " 
    read yno 
    case ${yno} in 

    y) 
     echo Continuing... 
     ;; 
    n) 
     echo Exiting... 
     ;; 
    *) 
     echo "Invalid input" 
     ;; 
    esac 
else echo Cont... 
fi 
関連する問題