쉘은 주어진 옵션입니다

쉘은 주어진 옵션입니다

목록(예: 배열)에 여러 매개변수가 있고 해당 옵션이 목록에 $@있는지 알고 싶습니다 .-v

Python에서는 다음과 같이 간단히 수행합니다.

verbose = "-v" in sys.argv

너무 많은 코드를 사용하지 않고 셸에서 이를 어떻게 달성할 수 있나요?

답변1

쉘 스크립트에서 다음을 호출할 수 있습니다.getopts루프의 함수. 코드 예제가 있습니다.대시보드 매뉴얼.


매우 간단한 경우를 제외하고는 Python 코드가 올바르지 않습니다. -v다른 옵션에 대한 인수이거나 옵션이 아닌 인수 뒤에 있는 경우에도 행의 어느 위치에서든 인수를 감지합니다 . Python에서 옵션을 구문 분석하는 올바른 방법은 argparse또는 를 사용하는 것입니다 optparse.

답변2

그것은 다음과 같습니다:

for i in "$@"
do
  [ "$i" = -v ] && verbose=1
done

관련 정보