다음과 같이 [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
다르게 설정될 뿐입니다 .CWD
CWD 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
모두 필요하지 않으며 제거할 수 있습니다.