如何在 bash shell 脚本中使用破折号编写开关代码?

如何在 bash shell 脚本中使用破折号编写开关代码?

因此,我正在编写一个 bash shell 脚本来启动 docker,以控制它们在实例化后是交互的还是持久的,并为它们命名。在命令行中,我将包含执行此操作的开关,例如,foo.sh --rm -it project1我的 bash 脚本是:

#!/bin/bash
#Accepts specific switch values
#remove docker upon exit -> use --rm in first position
remove=$1
#open up docker in interactive shell --> use -it in second position
interactive=$2
#pass a name for the project --> pass the name in the third position.  No name = projectA
named=$3
workdir="/home/s589/Desktop/WORMHOLE"
datadir="/home/s589/Desktop/celeba"
if ["$named" = ""]; then
named="projectA"
fi
docker run --gpus all -it -p 8888:8888 --ipc=host --shm-size 24G "$remove" "$interactive" --name="$named" \
    -v $workdir:/workspace \
    -v $datadir:/workspace/celeba \
    fastai:1.0.34

当然,如果我传递了错误的内容,它就不起作用了,所以我必须编写错误更正。有没有更优雅的方式来做到这一点?

相关内容