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

如何将bash中的两个变量传递给python脚本

  •  0
  • nkehoe  · 技术社区  · 1 年前

    我正试图将数组索引和文件名传递给python脚本,但我无法使其工作:

    #!/bin/bash
    #SBATCH --job-name=test
    #SBATCH --output=Test.txt
    #SBATCH --array=0-1
    
    for Folder in ~/users/**/**/T*A*
    do
        File= basename ${Folder}
        python test.py ${SLURM_ARRAY_TASK_ID} ${File}
    done
    

    我想将SLURM_ARRAY_TASK_ID和文件名传递给python脚本,但它没有传入文件名。

    解决方案: 使用spellcheck.net 代码应为:

    #!/bin/bash
    #SBATCH --job-name=test
    #SBATCH --output=Test.txt
    #SBATCH --array=0-1
    
    for Folder in ~/users/**/**/T*A*
    do
        File=$(basename "${Folder}")
        python test.py "${SLURM_ARRAY_TASK_ID}" "${File}"
    done
    
    1 回复  |  直到 1 年前
        1
  •  1
  •   Sai Vaishno Mohanty    1 年前

    如果您将basename命令括在$()内,并将变量括在双引号中以确保它们作为单独的参数传递,那么它应该可以工作。