我对 bash 脚本非常陌生,并且对 bash 中的命令行功能完全陌生。我尝试了一个脚本,如果用户喜欢直接编辑代码,该脚本应该可以与命令行参数以及手动设置变量值一起使用。
总体思路是这样的:
这样一来,人们可以使用myscript.sh -i somestring
,或者仅在 if 情况下手动设置与 -i 关联的变量。这样,脚本也可以通过执行来运行./myscript.sh
。
我发现我的代码中的 if 情况实际上没有做任何事情,或者至少没有做我想要的事情。当我在没有命令行参数的情况下运行脚本,然后回显应由 if 情况设置的默认值时,它们是空的。
这意味着脚本中稍后的 for 循环无法工作,因为这些变量尚未设置为任何值。脚本卡住的行是
slurm_file_string=$(cat $slurm_template_file | sed "s/INPUT_FILE/$gs_file/")
所以我不知道如何实现我想要实现的目标以及如何解决这个“卡住问题”。我需要以某种方式更改 if 情况,以便 if 情况内的默认值实际上执行某些操作,但不知道如何执行。
这是我的代码:
#!/bin/bash
# TODO:
# Need to figure out if I can launch all slurm jobs with "&" and let slurm handle the rest.
# Add scratch removal logic to slurm file template. Makes more sense to …
Run Code Online (Sandbox Code Playgroud)