2012-08-10 148 views
0

我在遇到問題時需要將腳本作爲命令行參數運行,測試是否存在,然後切換到該路徑以執行工作。在這裏我嘗試:目錄命令行參數

#!/bin/bash 

scriptpath=$1 

if [ $# -lt 1 ] 
then 
    echo "Usage: script.sh <directory_name>" 
fi 

if [ -d scriptpath ] 
then 
    # work...... 
else 
    echo "Directory does not exist" 

fi 
+0

而你的問題是......? – 2012-08-10 21:24:28

+0

它不起作用... – 2012-08-10 21:24:52

+0

即使目錄存在流下降到else語句 – 2012-08-10 21:26:19

回答

4

更改此:

if [ -d scriptpath ] 

這樣:

if [ -d $scriptpath ] 

另外,我建議利用的"",使你的腳本仍然表現正常當參數包含奇怪的字符時。 (Unix允許空格,換行符,星號,甚至文件名中的控制字符。)所以:

scriptpath="$1" 

... 

if [ -d "$scriptpath" ] 
+0

哦哇。我需要真正讓我的調試眼鏡發光 – 2012-08-10 21:28:18