Ошибка в csh-скрипте - PullRequest
       32

Ошибка в csh-скрипте

0 голосов
/ 31 мая 2010

Я работаю с C-Shell, пытаюсь запустить этот скрипт

set callsTo = "`cut -d" " -f2 ${1}`"
echo $callsTo

cut получает данные из файла, который является первым параметром:

> ./myscript data

Мне нужно только второе поле из каждой строки: -f2.

После этого я хочу проверить, были ли данные сохранены, но я получаю или несогласованную ошибку или пустая строка. Что не так с моим сценарием?

Также, когда я использую #! /bin/tcsh -f, я получаю это сообщение

 tcsh [ -bcdefilmnqstvVxX ] [ argument ... ]

Ответы [ 3 ]

1 голос
/ 25 августа 2011

Двойные кавычки не такие.

Попробуйте это:

set callsTo = "`cut -d' ' -f2 ${1}`"

Также, когда я использую #! / bin / tcsh -f Я получаю это сообщение

tcsh [-bcdefilmnqstvVxX] [аргумент ...]

Странно. Возможно ли, что после -f есть какой-то случайный символ, возможно, символ '\r' в конце строки в стиле Windows? Каков вывод head -1 *foo*.tcsh | od -c?

0 голосов
/ 15 сентября 2011

установить имя файла = echo ${1}|cut -f1 -d'#'
echo $ filename
Попробуйте это

0 голосов
/ 31 мая 2010

Я не знаю, tcsh, но не должна эта строка

set callsTo = "`cut -d" " -f2 ${1}`"

быть

set callsTo = `cut -d" " -f2 ${1}`?

В bash я бы сделал так:

callsTo=`cut -d' ' -f2 $1`?

Надеюсь, это поможет.

...