2010-02-24 217 views
1

有一個shell腳本讀取特定目錄中的文件。關於shell腳本-env變量

#!/bin/bash 
for fspec in /exp/dira/test/ready/* ; do 
done 

我想,這樣的路徑是從enviornmental可變retreived修改UNIX shell腳本。

export CUST_DATA=${_FX_DATA_}/test已經設置在環境這個變量通.profile文件

#!/bin/bash 
READY_FILES= "$CUST_DATA/ready" 
for fspec in $READY_FILES/* ; do 
done 

我試過以上,但它不工作。

+2

什麼意思是「不工作」,確切地說? – 2010-02-24 03:16:55

回答

5

等號後面的空格表示完全不同的意思。

#!/bin/bash 
READY_FILES="$CUST_DATA/ready" 
for fspec in "$READY_FILES"/* ; do 
    .... 
done 
+2

即使'$ READY_FILES'包含空格,也可以很好地使用引號。 – 2010-02-24 03:43:23

+0

非常感謝您的信息 – Arav 2010-02-24 04:42:09

0

echo "<$CUST_DATA>"添加到您的第二個腳本,以確保未設置變量。

+0

非常感謝信息 – Arav 2010-02-24 04:42:57

1
#!/bin/bash 
    . ~/.profile 
    READY_FILES="$CUST_DATA/ready" 
    for fspec in $READY_FILES/* ; do 
    ... 
    done 
+0

非常感謝信息 – Arav 2010-02-24 04:42:40

+0

應在'for'語句中引用''$ READY_FILES''。除非你有特定的原因,否則總是引用變量。 – 2010-02-25 13:35:40