0

私はシェルスクリプトが初めてで、誰かがここで答えてくれることを願っているいくつかの簡単な質問があります. 私は、Java関数がこの形式を持つある人から提供されたスクリプトを持っています:

#!/bin/sh
myCall() {
  file=$1

  cd /xyz/pqr/lmn/gqa/

  java -DServletURL=https://bps.hg2.com/bps/bpServlet XMLuser $file > $xlfile
}

上記の URL 部分は、必要に応じてユーザーの選択に基づいて別の URL に置き換える必要があります。

myCall 関数はスクリプトで少なくとも 2 回呼び出され、値を変更する必要があります。XMLuser$ $file > $xfile の部分は、ecah 呼び出しでも同じままであり、https が ahs を追加するだけです。スクリプトが機能すると、必要に応じて差分 URL に対して実行するための cron として使用されます。

私は単純な変数を使用し、それを myCall の前に置いて URL を決定し、次にユーザーの選択に基づいてスクリプトを決定しましたが、機能しませんでした。java -DServletURL=https://bps.hg2.com/bps/bpServlet XMLuser $file > $xlfile は結合されず (java -DServletURL= urla XMLuser $file> $xlfile)、サーバー ログインに使用される単一のユニットになります。 .

$url=""
echo "Please select server - A, B or C"
read server
if $server = A; then
$url = "http://www.urla.com"
else $server = B; then
$url = http://www.urlb.com"
else $server = C; then
$url = "http://www.urlc.com"
fi

ここで変更できることを教えてください。どうもありがとう。

4

1 に答える 1

0
  • 条件はテスト プログラムに対して記述する必要があります (テストまたは [ ] のいずれか)。
  • 変数は、割り当て時に $ なしで記述し、参照時に $ マークを付けて記述する必要があります
  • 代入では、変数名、= と値の間にスペースがあってはなりません。
 url=""
 echo "Please select server - A, B or C"
 read server
 if [ $server = "A" ]; then
    url="http://www.urla.com"
 fi
 if [ $server = "B" ]; then
    url="http://www.urlb.com"
 fi
 if [ $server = "C" ]; then
    url="http://www.urlc.com"
 fi
 # myCall $url
 echo $url

true if -else if - else コンストラクトが必要な場合は、elif を使用できます。

 if [ condition ]; then
      ...
 elif [ condition ]; then
      ...
 else
      ...
 fi
于 2012-07-02T00:23:55.337 に答える