Как выполнить скрипт .csh с аргументами командной строки из скрипта .csh - PullRequest
1 голос
/ 18 сентября 2009

Итак, у меня есть скрипт .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 ]

2 голосов
/ 18 сентября 2009

Я бы сказал, что вам, вероятно, нужно поместить фигурные скобки вокруг переменной позиционного параметра, когда они объединяются с некоторыми другими символами:

set destination1 = /scratch/graphics/${1}gif

Но вам может понадобиться и точка там:

set destination1 = "/scratch/graphics/${1}.gif"

и кавычки защищают от пробелов.

1 голос
/ 26 сентября 2009

$ 1gif не является ссылкой на позиционный параметр.

Вы пробовали $ {1} gif, как предложил Деннис? Я думаю, что это должно сработать.

ТАКЖЕ я нигде не вижу ссылки на $ 2, хотя ваш генерирующий явно посылает второй аргумент.

Наконец, первая строка, вероятно, должна быть #! / Bin / csh -f

Best
-pbr

...