플래그가있는 사용자 이름을 가져와야하는 bash 스크립트가 있습니다. 그런 다음 -r 또는 -w를 검색하여 읽기 또는 쓰기가되어야합니다.깃발 만 존재하는지 테스트하기위한 Bash 스크립트
현재 opts를 사용하고 있지만 실제 인수를 -r 및 -w에 전달해야합니다.
플래그에 무엇인가를 넘기지 않고 -r 또는 -w 만 있으면 어떻게 테스트 할 수 있습니까?
#!/bin/bash
while getopts :u:r:w: opt; do
case $opt in
u) user="$OPTARG" ;;
r) my_read=1 ;;
w) my_write=1 ;;
\?) echo "${0##*/}" [ -erw ]; exit 1 ;;
esac
done
if [[ ${my_write} -eq 1 ]] ; then
echo "write"
fi
if [[ ${my_read} -eq 1 ]] ; then
echo "read"
fi
옵션을 사용하지 않으려면 그 뒤에':'sigil을 사용하지 마십시오. 현재 코드는 *'-r'을 명시 적으로 지시하고'-w'는'OPTARG'에 다음 단어를 넣습니다. –
아, 그래, 이제 그게 문제인 것 같아. if 문을 변경하여 플래그가 명령 줄에 입력되었는지 확인하려면 어떻게해야합니까? –
참조. https://stackoverflow.com/a/16496491/297323'-z'는 친구 [ –