2012-07-01 124 views
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代替。

在腳本中調用myCall函數至少兩次,並且值必須更改。部分XMLuser $ $ file> $ xfile對於ecah只會調用https添加的ahs進行替換。一旦腳本工作,它將被用作cron根據需要運行在不同的區域。

我用簡單的變量,並把它放在myCall之前,以確定網址,然後基於用戶選擇的腳本,但它沒有奏效。 java -DServletURL = https://bps.hg2.com/bps/bpServlet XMLuser $ file> $ xlfile doesnt combine(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 

請告訴我可以在這裏更改。非常感謝。

回答

0
  • conditions應針對所述測試程序(或者測試或[])
  • 變量應該不會對分配的$被寫入,並與$標記對參考寫入被寫上分配
  • 應該有變量名稱和值之間沒有空格。
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 

你要知道如果你想要一個真正的,如果-else如果 - else結構,那麼你可以使用ELIF

if [ condition ]; then 
     ... 
elif [ condition ]; then 
     ... 
else 
     ... 
fi