【问题标题】:how I call the source ~./.bash_profile script from another shell script?我如何从另一个 shell 脚本调用源 ~./.bash_profile 脚本?
【发布时间】:2021-02-16 12:37:15
【问题描述】:

我在另一个脚本 main.sh 脚本 source.sh 中调用 source.sh 脚本有以下内容

   #!/bin/sh
    ~/.bash_profile



 #main.sh has following 
    tar -xzvf /home/admin/perf/jdk-8u201-linux-x64.tar.gz >> /home/admin/perf/output.txt &&
    sleep 1
    echo "Export Path for Environmental Variable"
    sudo echo "export PATH=/home/admin/perf/jdk1.8.0_201/jre/bin/:/home/admin/perf/jdk1.8.0_201/bin/:$PATH" >> /home/admin/.bash_profile
    sudo echo "export JAVA_HOME=:/home/admin/perf/jdk1.8.0_201" >> /home/admin/.bash_profile
    sleep 1
    echo "Persisting JDK PATH to .bash_profile"
    source /home/admin/perf/./source.sh

when I execute ./main.sh
    
#Result is ./source.sh script is not setting the export path in the same shell. 

【问题讨论】:

    标签: bash path


    【解决方案1】:

    #!/usr/bin/bash 用于重生 shell,意思是 bash,在大多数系统上,这是 bash 脚本的第一行,您的行 #!/bin/sh 可能不正确。但我可能错了。

    要调用 bash_profile,您可以输入 source ~/.bash_profile,但我会查看第一行,即解释器。

    【讨论】:

    • 尝试在 ./source.sh 中添加 #!/usr/bin/bash 如下所示 #!/usr/bin/bash source ~/.bash_profile 并且 main.sh 脚本有下面(也尝试使用 #!/usr/bin/bash got bad interpreter error)#!/bin/sh echo "Export Path for Environmental Variable" sudo echo "export PATH=/home/admin/perf/jdk1.8.0_201/ jre/bin/:/home/admin/perf/jdk1.8.0_201/bin/:$PATH" >> /home/admin/.bash_profile source /home/admin/perf/./path_persist.sh ===== ================================== 没有运气。发出同样的问题。它没有在同一个会话中导出路径。
    • PATH 和 JAVA_HOME 的导出不需要使用echo 和语音标记,否则使用命令echo 输出字符串,而不是导入您想使用的两个环境变量。
    • sudo echo "export PATH=/home/admin/perf/jdk1.8.0_201/jre/bin/:/home/admin/perf/jdk1.8.0_201/bin/:$PATH" >> /home/admin/.bash_profile 工作正常,路径附加了上述详细信息。只是source ~/.bash_profile 在同一个脚本中不起作用。我生成了另一个会话,我在 .bash_profile 中看到更新的 PATH 没有运行 source ~/.bash_profile
    • 更改输入基础后的整个脚本
    • 整个脚本基于以下。仍然需要在脚本之外单独执行source ~/.bash_profile,以便查看导出下的 PATH。注意-运行以下脚本后,如果我生成另一个会话,我确实会看到导出的 PATH。 #!/bin/bash echo "Export Path for Environmental Variable" sudo echo "export PATH=/home/admin/perf/jdk1.8.0_201/jre/bin/:/home/admin/perf/jdk1.8.0_201/bin/:$PATH" >> /home/admin/.bash_profile sudo echo "export JAVA_HOME=:/home/admin/perf/jdk1.8.0_201" >> /home/admin/.bash_profile echo "Persisiting JDK PATH to .bash_profile" source ~/.bash_profile
    猜你喜欢
    • 2012-01-11
    • 1970-01-01
    • 2012-06-05
    • 2012-12-27
    • 1970-01-01
    • 1970-01-01
    • 2017-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多