【问题标题】:how to include a file containing variables in a shell script如何在 shell 脚本中包含包含变量的文件
【发布时间】:2013-07-05 23:48:47
【问题描述】:

我有很多脚本外壳,我想在这个外壳中包含一个包含变量的文件

脚本?

我的 var 脚本:

###################################################################################
ORACLE_LOGIN=login
ORACLE_PWD=pwd
CHEMIN_1="/home/"
CHEMIN_2="/scripts/"
LOG_FILE="$CHEMIN_1/max.log"
export ORACLE_SID=oracle_sid
###################################################################################

我的脚本 sh:

#!/bin/ksh
#set -x

# ==============   LOAD VAR HERE  ====================================
????

##################################################################
####                          Begin                           ####
##################################################################

write "Begin $0"  

$ORACLE_HOME/bin/sqlplus -s $ORACLE_LOGIN/$ORACLE_PWD@$ORACLE_SID <<EOF >> $LOG_FILE 2>&1 
@$CHEMIN_2/sp_rep_alim_dia_date_max.sql
exit
EOF

write "End."

谢谢。

【问题讨论】:

    标签: linux bash sh


    【解决方案1】:

    使用.(点)命令获取文件

    . var_script
    

    备注:

    • 如果文件名不包含斜杠,那么 bash 将尝试在 $PATH 中找到它。
    • 如果在 PATH 中找不到,将使用 当前目录(除非 bash 处于 POSIX 模式)。

    参考手册中的 [. 命令][来源]。

    因此,如果您知道它的位置,请为其使用相对/绝对路径。 [来源]:https://www.gnu.org/software/bash/manual/bash.html#index-_002e

    【讨论】:

    • sh:第 5 行:fct_commun.sh:没有此类文件或目录
    • 如果该文件与“主”脚本位于同一目录中,则. "$(dirname "$0")"/fct_commun.sh
    【解决方案2】:
    . ./name_of_the_var_script
    

    即点 + 空格 + 点 + 斜杠 + 文件名(因为“点”实用程序需要 var 脚本的绝对或相对路径)。

    【讨论】:

    • sh:第 5 行:fct_commun.sh:没有此类文件或目录
    • 您确实需要指定正确的路径(通常如下所示的"$(dirname "$0")" 有效)。
    【解决方案3】:

    这取决于哪个 shell,但通常这两个中的一个可以工作:

    . var
    

    source var
    

    我不确定 ksh,但我想两者都可以。

    【讨论】:

    • sh:第 5 行:fct_commun.sh:没有此类文件或目录
    • 当前目录下是否存在名为“var”的文件?
    【解决方案4】:

    source var 为我工作。 这个链接Pass all variables from one shellscript to another?对这个问题有很好的解释

    // 希望这会有所帮助..

    【讨论】:

    • 欢迎来到 stack Overflow.. 如果这是一个答案,那么也提供有关此链接的有用信息.. 因为不允许在答案部分发表评论..
    猜你喜欢
    • 2012-06-05
    • 2018-04-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-19
    • 1970-01-01
    相关资源
    最近更新 更多