2010-02-24 223 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