2016-07-22 5 views
3
#! /bin/bash 
sum=0 
for number in [email protected] 
do 
    sum=$((sum + number)) 


done 
grep [!0-9+-] "[email protected]" | echo $sum 

このスクリプトは、位置パラメータを取得してそれらを加算することを目的としていますが、2つの操作を行うにはスクリプトも必要です。grep位置パラメータを試す

  1. 位置パラメータは、ワード数、次に印刷エラーメッセージではない位置パラメータが存在する場合、STDOUT
  2. に単語を印刷する場合。

私がこのスクリプトを実行すると、grepは現在のディレクトリで、入力した式の他のディレクトリまたはファイルを探します。私は、位置パラメタを単語のために検索して、それを標準出力に生成するにはgrepが必要です。現在のところ、出力は引数の合計のみであり、文字が使用されているときはメッセージを認識したり生成したりしません。

+2

最終目標は何ですか。 –

+0

数字を一緒に追加するだけで、単語や文字が表示された場合はエラーメッセージが表示されます。私は今エコー$和を削除しました。 –

+0

ようこそスタックオーバーフロー!変更する必要のある最小限の例を投稿してください(// stackoverflow.com/help/mcve)。修正が必要なものについて十分に説明してください。いくつかの例があなたを助けるために長い道を行くでしょう。 – FrankerZ

答えて

0

ここで調整を提案します。私はあなたが$ @を使っているのであなたのファイルに引数を使用していると仮定します...正規表現の検索には-Eも必要です。

#!/bin/bash 
sum=0 
homeworkassignment=1 
wordfound=false 
for number in [email protected] 
do 
    evaluate=$(echo "$number" | grep [!0-9+-]) 
    #check for numbers in [email protected] 
    if [ $? = '0' ]; then 
    numericvalue=$(echo $number | grep [!0-9+-]) 
     sum=$(($sum + $numericvalue)) 
    else 
     if [ $homeworkassignment=1 ]; then echo "NO NUMBER"; fi 
     if [ $homeworkassignment=2 ]; then wordfound=true; fi 
    fi 
done 
echo "The Total Sum is "$sum 
if ([ $homeworkcode -eq 2] && [ $wordfound -eq "true" ]); then echo "A Word was Found"'!';fi 

出力:

[[email protected] ~]# ./so_38517168.sh 2 1 2 3 4 NO NUMBERS 1 NO NUMBERS 2 NO NUMBERS 3 NO NUMBERS 4 
NO NUMBERS 
NO NUMBERS 
NO NUMBERS 
NO NUMBERS 
NO NUMBERS 
NO NUMBERS 
NO NUMBERS 
NO NUMBERS 
2 1 2 3 4 NO NUMBERS 1 NO NUMBERS 2 NO NUMBERS 3 NO NUMBERS 4 

The Total Sum is 22 

着目その2つの1 2 3 4 NO番号1〜NO NUMBERS 2 NO NUMBERS全体の行番号と一致したため、4は3つのNO番号を抽出ライン。この出力から数字だけを表示するには、おそらくsedを使用する必要があります。

+0

私の質問が更新されました。 grepの前にecho $ sumを置くと、全く出力が得られませんでした。しかし、引数の合計のみを出力するので、問題は解決されません。文字は無視されます。 –

+0

私は単に引数の合計を取得します。たとえば、1 2 3 4を引数に指定すると、出力は10になります。ここでは、1つ2つ3 4を引数として入力すると、出力が7となるようにします。 –

+0

ADD2 1 2 3 4 NO NUMBERS 1 NO NUMBERS 2 NO NUMBERS 3 NO NUMBERS 4 は本当の終わりがありませんので、私はそれはちょうど宿題だ値 –

関連する問題