"local log"가 나타나는 첫 번째 줄인 아래 코드에서 "12 : local : not in a function"이 계속 나타납니다. 지역 변수는 함수에서 올바르게 설정되어있는 것처럼 보입니다. 누군가가 올바른 방향으로 나를 가리켜 주시겠습니까?local : 변수에 대한 함수가 아닙니다.
#!/bin/bash
HOST="0.0.0.0"
USER="root"
PASS="123"
function login{
if [ -z "$USER" ]
then
echo "pass not set"
else
local log="-u $USER"
local log+="-p$PASS"
echo $log
fi
}
mysql (login) -h $HOST
중요한 점은이 경우 Windows 10의 Ubuntu 하위 시스템에 있습니다.
당신은 '로컬 로그'를 정의하는 TWICE입니다. – Jack
@Jack 네,하지만 그건 별 문제가 아니에요. 두 번째 것은 단순히 이미 로컬 변수를 다시 로컬 변수로 만듭니다 (idempotently). 변수의 값에는 전혀 영향을주지 않습니다. – chepner
'shellcheck.net'은 매우 좋은 조언입니다. 왜냐하면'login'이라는 함수를 실제로 정의하지 못했을 때 게시 된 코드에 다른 이슈가 있기 때문입니다. – chepner