Вопрос по основам: при настройке переменных среды для программы, запускаемой из скрипта, я столкнулся с несколько странным поведением с sh (которое, похоже, на самом деле связано с bash): установка переменных, похоже, путается с командной строкой параметры.
Может кто-нибудь объяснить, почему это происходит?
Простой скрипт:
#! /bin/sh
# Messes with $1 ??
set ANT_OPTS=-Xmx512M
export ANT_OPTS
# Works
# export ANT_OPTS=-Xmx512M
echo "0 = $0"
echo "1 = $1"
Когда я запускаю это с верхней альтернативой (set + export), результат будет следующим:
$ ./test.sh foo
0 = ./test.sh
1 = ANT_OPTS=-Xmx512M
Но с более низкой альтернативой (прямой экспорт) результат, как я и предполагал:
$ ./test.sh foo
0 = ./test.sh
1 = foo
Конечно, есть логичное объяснение, я просто еще не понял. Кто-нибудь, у кого есть идея?
br, Touko