case
次の文を含むbashスクリプトがあります。
case "$1" in
bash)
docker exec -it $(docker-compose ps -q web) /bin/bash
;;
shell)
docker exec -it $(docker-compose ps -q web) python manage.py shell
;;
test)
docker exec -it $(docker-compose ps -q web) python manage.py test "${@:2}"
;;
esac
test
コマンドはデフォルトのパラメーターを渡したいが、apps
ユーザーがtest
bashスクリプトを除くすべてのパラメーターを渡さない場合にのみ可能です。
したがって、ユーザーが次のようにスクリプトを実行した場合:
./do test
コマンドを実行する必要があります
docker exec -it $(docker-compose ps -q web) python manage.py test apps
ただし、次のようにスクリプトを実行する場合:
./do test billing accounts
コマンドを実行する必要があります
docker exec -it $(docker-compose ps -q web) python manage.py test billing accounts
パラメータが存在するかどうかをテストする方法後ろに最初の主張?
ベストアンサー1
bash変数置換を試してみました。
test)
shift
docker exec -it $(docker-compose ps -q web) python manage.py test "${@-apps}"
;;
$*
代わりに他の方法を確認することをお勧めします$1
。
case $* in
bash)
...
test)
docker exec -it $(docker-compose ps -q web) python manage.py test apps
;;
test\ *)
docker exec -it $(docker-compose ps -q web) python manage.py test "${@:2}"
;;