Параметр -D
задокументирован в tcsh(1)
как:
-Dname[=value]
Sets the environment variable name to value. (Domain/OS only) (+)
Я предполагаю, что вы не используете домен / ОС: -)
Вы можете используйте env
для задания переменной для одной команды, например:
$ env FOO=1 ./a.csh
Обратите внимание, что в вашем скрипте вы всегда переопределяете FOO
на 0
; поэтому вам нужно изменить это, чтобы переопределить его, только когда он не установлен:
if (! $?FOO) setenv FOO 0
В качестве постскриптума я должен отметить, что использование сценариев в csh, как правило, не рекомендуется, если этого можно избежать; Есть много предостережений и недостатков (см., например, this ), и вам почти всегда лучше использовать оболочку Bourne.