代码之家  ›  专栏  ›  技术社区  ›  Priya

在shell脚本中多次运行python脚本

  •  0
  • Priya  · 技术社区  · 2 年前

    我正在尝试运行以下shell脚本:

    PATH=`python getvar.py path`
    PATH_REPO="$PATH/$FOLDER_NAME/"
    echo "path repo is $PATH_REPO"
    ESP=`python getvar.py esp`
    echo "esp is $ESP"
    DPLYR=`python getvar.py deployer`
    echo "deployer is $DPLYR"
    recipients_list=`python getvar.py recipients`
    echo "recipient list is $recipients_list"
    REMOTE_USER=`python getvar.py remoteuser`
    echo "user is $REMOTE_USER"
    
    

    我得到的结果如下:

     path repo is /home/developer/user1
    ./test.sh: line 14: python: command not found
    esp is
    ./test.sh: line 16: python: command not found
    deployer is
    ./test.sh: line 18: python: command not found
    recipient list is
    ./test.sh: line 21: python: command not found
    user is
    
    

    python文件仅为第一个命令执行。如果通过终端单独运行,它会给我输出,但不会从shell脚本中输出。 如何让同一个python脚本在shell脚本中多次运行?

    1 回复  |  直到 2 年前
        1
  •  2
  •   teambob    2 年前

    shell正在查找python解释器的PATH环境变量。路径是一个非常特殊的环境变量。在第一步中,将PATH环境变量替换为 python getvar.py path

    我会做以下几件事:

    1. 你真的想使用特殊变量“PATH”吗?
    2. 如果是,请确保 python getvar。py路径 包括python解释器的路径
    3. 或者在更改path变量之前将路径保存到Python解释器

    我建议您按如下方式更改脚本:

    MYPATH=`python getvar.py path`
    PATH_REPO="$MYPATH/$FOLDER_NAME/"
    echo "path repo is $PATH_REPO"
    ESP=`python getvar.py esp`
    echo "esp is $ESP"
    DPLYR=`python getvar.py deployer`
    echo "deployer is $DPLYR"
    recipients_list=`python getvar.py recipients`
    echo "recipient list is $recipients_list"
    REMOTE_USER=`python getvar.py remoteuser`
    echo "user is $REMOTE_USER"