평가판에 공백이 있는 bash 오류

평가판에 공백이 있는 bash 오류

다음과 같이 [variable_name="value"] 형식으로 bash 전달 매개변수를 트리거해야 합니다.

./test.sh ip='164.130.21.98' hostname='whatever' pwd='/test' ftpcmd='CWD debug' user='stefano'

test.sh 스크립트에서 모든 변수에 관련 값을 할당하고 싶습니다.

#!/bin/bash
eval `echo "$@"`
echo $ftpcmd

하지만 prova: command not found오류가 발생합니다.

ftpcmd='CWD debug'내 매개변수에 어떤 문제가 있는지 , 어떻게 작성해야 하는지 이해할 수 없습니다 .

eval을 선언으로 바꾸려고 하면 예상한 것과 $ftpcmd다르게 설정될 뿐입니다 .CWDCWD debug

답변1

숙제를 주면앞으로스크립트

ip='164.130.21.98' hostname='whatever' pwd='/test' ftpcmd='CWD debug' user='stefano' ./test.sh 

이러한 변수는 스크립팅 환경에서 사용할 수 있습니다. 이 -k옵션은 다음을 처리합니다.모두환경 수정과 같은 사전 명령 할당뿐만 아니라 할당입니다.

set -k
./test.sh ip='164.130.21.98' hostname='whatever' pwd='/test' ftpcmd='CWD debug' user='stefano'
set +k

두 경우 eval모두 필요하지 않으며 제거할 수 있습니다.

관련 정보