Добрый день,Как назначить переменные в сценарии csh и использовать их в качестве аргументов для того же сценария?
Надеясь на помощь любого здесь, спасибо заранее. У меня T.csh который выглядит следующим образом:
#! /bin/csh
set a="01 02 03 04 05 06 07 08 09 10 11 12 13"
set b="14 15 16 17 18 19 20 21 22 23 24 25"
set c="01 02 03 04 05 06 07 08 09 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25"
set X = `grep $1 EOL.txt | head -n1 | cut -d- -f1`
printf "$X\n$2\n$3\nYYYY\n1\nN\n"
переменных а, б и в, необязательно использовать в качестве 3-го аргумента в PRINTF линии. Проблема в том, что всякий раз, когда я пытаюсь запустить скрипт, он показывает неопределенную переменную. Эти заданные командные строки работают всякий раз, когда я назначаю их в интерактивном режиме, но внутри скрипта, похоже, не работает. Возможно, мне нужно инициализировать его, но не мог понять, как это сделать. Я просто хочу сказать, что кто-то здесь может мне помочь. Заранее большое спасибо.
Вот выполнение пробы и ошибки для справки:
CAT-46{bc2}40>set a="01 02 03 04 05 06 07 08 09 10 11 12 13"
CAT-46{bc2}41>./T.csh 4773 XXXX.XX "$a"
62
XXXX.XX
01 02 03 04 05 06 07 08 09 10 11 12 13
82869
1
N
CAT-46{bc2}42>unset a
CAT-46{bc2}43>./T.csh 4773 XXXX.XX "$a"
a: Undefined variable
CAT-46{bc2}44>
Если я установить переменные вручную, это нормально, но когда я позвонил к нему из сценария, его слабеющей неопределенной переменной ошибки.
Майк
Вставьте точную ошибку, которую вы видите в своем вопросе. – codeforester
И показать использование, которое включает $ a, $ b, $ c. Основываясь на другом Q вчера для csh, я считаю, что csh дросселирует пробелы в значениях для переменных назначений. (даже если они указаны). Поэтому убедитесь, что вы можете просто использовать один из этих варов (с пробелами в них), прежде чем тратить на это много времени. См. Http://grymoire.com/unix/csh.html для разумного учебника csh и обсуждения того, почему вы, вероятно, захотите использовать 'bash', если сможете. Удачи. – shellter