Bash에서 위치 매개 변수에 값을 할당하려면 어떻게해야합니까? 기본 매개 변수에 값을 지정하려고합니다.위치 매개 변수에 할당
if [ -z "$4" ]; then
4=$3
fi
4는 명령이 아님을 나타냅니다.
Bash에서 위치 매개 변수에 값을 할당하려면 어떻게해야합니까? 기본 매개 변수에 값을 지정하려고합니다.위치 매개 변수에 할당
if [ -z "$4" ]; then
4=$3
fi
4는 명령이 아님을 나타냅니다.
set
내장 된 위치 매개 변수
--
옵션 (예를 들어,
-x
)처럼 보이는 것을 방지
$ set -- this is a test
$ echo $1
this
$ echo $4
test
을 설정할 수있는 유일한 방법입니다.
if [ -z "$4" ]; then
set -- "$1" "$2" "$3" "$3"
fi
하지만 아마
당신은 또한 매개 변수를 살펴-z
에 대한
$#
대신 테스트를 계산 할 수 있습니다
if [ -z "$4" ]; then
# default the fourth option if it is null
fourth="$3"
set -- "$1" "$2" "$3" "$fourth"
fi
으로 더 명확 것 :
는 귀하의 경우에 당신은 할 수 있습니다.당신은 네 번째 매개 변수로 다시 스크립트를 호출하여 당신이 원하는 것을 할 수 있습니다
if [ -z "$4" ]; then
$0 "$1" "$2" "$3" "$3"
exit $?
fi
echo $4
./script.sh one two three
출력됩니다 같은 스크립트 위의 호출 :
세
'./ $ 0'은 PATH를 통해 스크립트에 접근하면 작동하지 않을 것이고,'$ 0'은'./script'와'/ usr/local/bin/script' 등에서 작동 할 것입니다. – msw