0

我是 shell 脚本的新手,有一些简单的问题,希望有人可以在这里回答。我有一个脚本由某人提供,其中 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 函数在脚本中至少被调用两次,并且值必须改变。ecah 调用部分 XMLuser$ $file > $xfile 保持不变,仅需要替换 https 添加 ahs。一旦脚本工作,它将根据需要用作 cron 来针对 diff url 运行。

我使用简单的变量并将其放在 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

请注意,如果您想要一个真正的 if -else if - else 构造,那么您可以使用 elif

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