Как выполнить сценарий.csh с аргументами командной строки из сценария.csh
Итак, у меня есть сценарий.csh generate.csh. Я хочу вызвать из него другой сценарий.csh. Я старался
./shell_gen.csh test1 test2.prt
Но он запускает shell_gen.csh, но без аргументов командной строки.
Кто-нибудь?
Спасибо
generate.csh
#!/bin/csh
./shell_gen.csh test1 test2.prt
shell_gen.csh
#!/bin/csh
set source = output
############################################################
# create pbm-gifs/ directory
############################################################
set destination1 = /scratch/graphics/$1gif
echo making $destination1
if ( ! -e $destination1 ) then
mkdir $destination1
foreach file ( $source/*.pgm )
echo convert $file $destination1/$file:t:r.gif
convert $file $destination1/$file:t:r.gif
end
else
echo "$destination1/ exists"
endif
2 ответа
Я бы сказал, что вам, вероятно, нужно поместить фигурные скобки вокруг переменной позиционного параметра, когда они объединяются с некоторыми другими символами:
set destination1 = /scratch/graphics/${1}gif
Но вам может понадобиться и точка там:
set destination1 = "/scratch/graphics/${1}.gif"
и цитаты защищают от пробелов.
$1gif не является ссылкой на позиционный параметр.
Вы пробовали ${1}gif, как предложил Деннис? Я думаю, что это должно работать.
ТАКЖЕ я нигде не вижу ссылки на $2, хотя ваш метод генерирует явно второй аргумент.
Наконец, первая строка, вероятно, должна быть #!/ Bin / csh -f
Лучший,
-pbr