2011-07-26 141 views
1

我我.SH腳本幫助運行一個腳本.SH

#!/bin/bash 

if [ -z "$1" ] || [ -z "$2" ]; then 
    echo "Usage: sync.sh DIRECTORY_LOCATION" 
    exit 1 
fi 

DIRECTORY_LOCATION=$1 

DEV_INSTANCE_IP=<some ip> 

# Update data 
scp -pR ${DEV_INSTANCE_IP}:${DIRECTORY_LOCATION}/* ${DIRECTORY_LOCATION}/ 

如何運行此腳本?

我試過sh sync.sh <path to directory>,但它迴響了行Usage: sync.sh DIRECTORY_LOCATION。這是否意味着它正在運行?

回答

2

是它的運行,-z標誌意味着

-z STRING  True if string is empty. 

如果任第一個參數或第二個是空的 - >出口獲得更多信息的

一個方法是將家當改變#!/bin/bash -x這將告訴bash打印的每一行執行包括價值參數

1

此腳本中的$ 1意味着它需要另一個DIRECTORY_LOCATION條目。所以,你將需要:

慶典sync.sh 目錄名

而且,而是採用SH scriptname.sh,這是更好地做 「使用chmod + X scriptname.sh」。

希望這會有所幫助!

2

咳咳,腳本需要在條件|| [ -z "$2" ]第二(假=從不使用)的說法,如果你刪除的那部分,它應該工作作爲作家意味着它可以使用,不管這可能是;-) 至少它應該按照你所說的方式工作,即sh sync.sh <path to directory>. 而不是,如果你只在你的版本中提供了這一個參數,它預先設定了使用並退出撤消。 你也可以提供第二個參數(只要你不與兩個,即提供的目錄作爲第二ARG無助混淆...