【问题标题】:Regarding shell script -env variables关于 shell script -env 变量
【发布时间】:2010-02-24 03:13:39
【问题描述】:

拥有一个读取特定目录中文件的 shell 脚本。

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

我想修改 unix shell 脚本,以便从环境变量中检索路径。

export CUST_DATA=${_FX_DATA_}/test 已通过 .profile 在环境中设置此变量

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

我尝试了上述方法,但它不起作用。

【问题讨论】:

  • “不工作”到底是什么意思?

标签: unix shell


【解决方案1】:

等号后面的空格使它的意思完全不同。

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

【讨论】:

  • 即使$READY_FILES 包含空格,也可以很好地使用引号。
【解决方案2】:
    #!/bin/bash
    . ~/.profile
    READY_FILES="$CUST_DATA/ready"
    for fspec in $READY_FILES/* ; do
     ...
    done

【讨论】:

  • 应该在for 声明中引用"$READY_FILES"。除非您有特定的理由不引用变量,否则请始终引用变量。
【解决方案3】:

echo "<$CUST_DATA>" 添加到您的第二个脚本以确保未设置该变量。

【讨论】:

    猜你喜欢
    • 2011-03-01
    • 2022-12-02
    • 2018-09-21
    • 2016-11-04
    • 2017-09-02
    • 2020-05-14
    • 1970-01-01
    • 2021-08-19
    • 2020-12-24
    相关资源
    最近更新 更多