"case"를 사용하여 스크립트 매개변수 처리

"case"를 사용하여 스크립트 매개변수 처리

case문을 사용하여 매개변수를 처리할 수 있나요? 따라서 -restart를 사용하여 "-umount" 및 "-mount"를 수행하고 싶습니다.

#!/bin/bash
case "$1" in
-mount
mount /ip/share1 /local/share1
;;
-umount
umount /ip/share1
;;
-restart
# echo TODO
;;
*)
[...]
esac

답변1

)s가 누락된 구문 문제를 제외하면 이것이 작동할 것 같습니다 . 이것을 테스트했는데 올바르게 작동합니다 ..

#/bin/bash
case "$1" in
  "-mount")
    mount /path/to/device /path/to/mountpoint
    ;;
  "-unmount")
    umount /path/to/mountpoint
    ;;
  "-remount")
    "$0" -unmount
    "$0" -mount
    ;;
  *)
    echo "You have failed to specify what to do correctly."
    exit 1
    ;;
esac

답변2

#!/bin/bash
unset u
mnt() { ${u+u}mount /ip/share1 ${u-"/local/share1"}; }
case "$1"   in
(-mount)            :;; 
(-umount)  u=        ;;
(-restart) u= mnt    ;;
(*)               ! :;;
esac && mnt

^위와 같이 기능을 사용할 수 있습니다.

관련 정보