在 slurm 上的 bash 脚本中模拟用户输入

在 slurm 上的 bash 脚本中模拟用户输入

我相信我的问题与发现的类似这里但我对回复感到困惑(由于我的代表较低,我还无法对此问题发表评论)。

我有一个 bash 脚本,需要使用 slurm 运行,因此当脚本需要用户输入时,如下所示:

Enter y or yes if you want to continue Compass and used cached results.

脚本停止。这行代码运行后出现这一行:

compass --data compass_adipocytes_only_input_transposed.tsv --num-processes 10 --species mus_musculus

我该怎么做才能让我的脚本用“y”回复这个?

这是整个脚本

#!/usr/bin/env bash
#SBATCH --job-name=Compass
#SBATCH --ntasks=54
#SBATCH --output=compass.%j.out
#SBATCH --exclusive

# To activate this environment, use
. /tools/Miniconda3.7/etc/profile.d/conda.sh
conda activate /data04/projects04/MarianaBoroni/lbbc_members/lib/conda_envs/compass

which compass


compass --data compass_adipocytes_only_input_transposed.tsv --num-processes 10 --species mus_musculus
yes | compass

# To deactivate an active environment, use:
conda deactivate
exit

我用命令执行了

sbatch metabolismanalysis.sh

答案1

yes | myscript.sh

y\n这将为您的脚本输出连续的流。如果您需要不同的字符/字符串,请使用yes foo输出foo。看是的手册页

相关内容