사용법 메시지가 포함된 테스트 표현식을 찾고 있습니다. 명령줄에 파일(예: ./file)을 입력할 때 중지하고 오류를 표시하는 스크립트가 필요합니다. ./file test를 입력할 때 파일을 실행하고 file을 입력해야 합니다. 테스트를 사용하여 메시지를 표현하는 데 어려움을 겪습니다. 지금까지 이것이 있고 내가 원하는 대로 작동하지만 파일을 입력하기 위해 ./file 테스트가 실제로 입력되고 있는지 확인하고 확인해야 합니다. 명령을 올바르게 입력하지 않으면 오류가 발생하고 종료됩니다.
if [$# -eq 0 ]
then
echo"error"
exit 1
fi
답변1
[
그것은 명령이 [$#
아닙니다. 명령과 인수를 분리해야 합니다.
if [ $# -eq 0 ]; then
echo "error" # Here, too
exit 1
fi
그런데 전체 블록을 특수 매개변수 확장으로 대체할 수 있습니다.
: ${1?error}
첫 번째 위치 인수가 설정되지 않은 경우(즉, 위치 인수가 없는 경우) ? 뒤에 메시지가 인쇄됩니다. 그리고 나가세요.