bashではgrepを使用しながら、可変内部相互作用コマンドの出力を置きます

StackOverflow https://stackoverflow.com/questions/891988

  •  23-08-2019
  •  | 
  •  

質問

私が使用するこのプログラムは、それはあなたがそれを実行したときに設定する独自の変数を持っていますので、私はその後、出力をgreping変数の内側にそれを格納し、それらの変数を設定したいです。しかし、私はこのことについて、正しい道を行く方法がわかりません。私が持っているアイデアは動作しません。焦点は、ライン14を介して7である。

1  #!/usr/local/bin/bash
2  source /home/gempak/NAWIPS/Gemenviron.profile
3  FILENAME="$(date -u '+%Y%m%d')_sao.gem"
4  SFFILE="$GEMDATA/surface/$FILENAME"
5  echo -n "Enter the station ID: "
6  read -e STATION
7  OUTPUT=$(sflist << EOF
8  SFFILE = $SFFILE
9  AREA = @$STATION
10 DATTIM = all
11 SFPARM = TMPF;DWPF
12 run
13 exit
14 EOF)
15 echo $OUTPUT

しかし、私はこれを取得ます:

./listweather: line 7: unexpected EOF while looking for matching `)'
./listweather: line 16: syntax error: unexpected end of file
役に立ちましたか?

解決

みんなの答えを一緒に入れて、私自身は、使用液に出くわしました。このコードは、私の作品ます:

#!/usr/local/bin/bash
source /home/gempak/NAWIPS/Gemenviron.profile
FILENAME="$(date -u '+%Y%m%d')_sao.gem"
SFFILE="$GEMDATA/surface/$FILENAME"
echo -n "Enter the station ID: "
read -e STATION

OUTPUT=$(sflist << EOF
SFFILE = $SFFILE
AREA = @$STATION
DATTIM = ALL
SFPARM = TMPF;DWPF
run
exit
EOF
)
echo $OUTPUT | grep $STATION

みんなありがとう!

他のヒント

私は独立した.SHスクリプトファイルで実行し、コマンドライン引数として渡したい引数を渡す、あなたの最初のファイルからスクリプトを実行するようにプログラムを置くと思います。あなたがそれらを個別にテストすることができます。

その方法

また、関数の中でそれを行うことができますが、私は2番目のスクリプトのモジュールが好き。私はあなたが上記のやろうとしている正確に何udnerstandが、のようなものはありません。

runsflist.sh:
#!/bin/bash

FILENAME="$(date -u '+%Y%m%d')_sao.gem"
SFFILE="$GEMDATA/surface/$FILENAME"
AREA = @$STATION
DATTIM = all
SFPARM = TMPF;DWPF
grep $STATION | sflist

main.sh:
#!/bin/bash

echo -n "Enter the station ID: "
read -e STATION
OUTPUT=`runsflist.sh`
echo $OUTPUT

sflistが相互作用を必要とする場合、私はこのような何かを試してみます:

SFFILE=$(
  ( echo SFFILE = "$SFFILE"
    echo AREA = "@$STATION"
    echo DATTIM = all
    echo SFPARM = TMPF;DWPF
    echo run
    cat
  ) | sflist)

残念ながら、あなたは対話の一環としてexit入力する必要があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top