Вы не можете назначить «переменные положения» (параметры). Однако вы можете использовать set, но вы можете потерять другие параметры:
#!/bin/bash
echo "The first variable : $1"
echo "The second variable : $2"
echo "The third variable : $3"
if [ "$1" == "T" ]
then
set -- T 10 15
fi
echo "$2"
echo "$3"
Если вы хотите сохранить другие параметры, вам нужно будет использовать "$@"
и shift
:
$ set -- 1 2 3 4 5 6 7 8 9 10
$ echo "$@"
1 2 3 4 5 6 7 8 9 10
$ set -- T 10 15
$ echo "$@"
T 10 15
$ set -- 1 2 3 4 5 6 7 8 9 10
$ shift 3
$ set -- T 10 15 "$@"
$ echo "$@"
T 10 15 4 5 6 7 8 9 10
если вы хотите для go совместимости с POSIX, вы также можете использовать предложение ruakh в bash / zsh:
$ set -- 1 2 3 4 5 6 7 8 9 10
$ echo ${@:4}"
4 5 6 7 8 9 10
$ set -- T 10 15 "${@:4}"
$ echo "$@"
T 10 15 4 5 6 7 8 9 10
Примечание: "переменные положения" на самом деле параметры оболочки . Кроме того, вы четко заявили, что хотите их использовать, но я должен сказать вам, что большую часть времени вам лучше использовать обычные переменные оболочки.