변수가 정의되지 않은 경우 bash가 실행되지 않도록 방지하는 방법

변수가 정의되지 않은 경우 bash가 실행되지 않도록 방지하는 방법
#!/bin/bash       
$myval=/home
ls $mval <- unexpected misspelling

$mvalls 명령이 정의되지 않았기 때문에 실행되는 것을 방지할 수 있는 방법이 있습니까 ?

노트오타가 있어서 존재 여부를 확인할 수 없습니다. 설정할 수 있는 추가 속성을 찾고 있습니다.

답변1

set -u설정되지 않은 변수를 확장하려고 하면 중단 옵션을 사용하여 이 작업을 수행 할 수 있습니다 . 그러나 이는 $myval=/home유효한 구문이 아니므로 변수가 설정되지 않습니다. 을(를) 삭제해야 합니다 $.

#!/bin/bash 

set -u
     
myval=/home
ls "$mval"

-유

설정되지 않은 변수와 특수 매개변수 "@", "*" 이외의 매개변수는 매개변수 확장 시 오류로 처리됩니다. 오류 메시지가 표준 오류에 기록되고 비대화형 쉘이 종료됩니다.

관련 정보