Объявление определяемой пользователем переменной в сценариях оболочки (оболочка csh)

Я пытаюсь изучить сценарии оболочки и пытаюсь создать пользовательскую переменную в сценарии, first:

howdy="Hello $USER !"
echo $howdy

Однако, когда я выполняю скрипт (./first), я получаю следующее:

howdy=Hello aaron!: Command not found.
howdy: Undefined variable.

Что я делаю неправильно?


person Elpezmuerto    schedule 28.09.2010    source источник
comment
Какой вкус скорлупы? баш, кш, зш, ...?   -  person    schedule 28.09.2010
comment
Я не знал, что это имеет значение, но это csh   -  person Elpezmuerto    schedule 28.09.2010
comment
Вот показатель того, насколько это важно: Программирование на Csh считается вредным.   -  person Dennis Williamson    schedule 28.09.2010
comment
Каждая оболочка имеет свой собственный язык со своим синтаксисом.   -  person andcoz    schedule 28.09.2010


Ответы (3)


У вас есть две ошибки в вашем коде:

  1. вы используете синтаксис sh вместо csh для установки переменной
  2. вы не избегаете "!" персонаж (подмена истории)

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

#!/bin/csh

set howdy="Hello $USER \!"
echo $howdy
person andcoz    schedule 28.09.2010

csh ожидает, что вы set переменные. Пытаться

set howdy="Hello $USER"
echo $howdy
person Aaron Digulla    schedule 28.09.2010

Ты делаешь

howdy=''Hello $USER !''

Вам нужно заключить строку в двойные кавычки как:

howdy="Hello $USER !"

Кажется, вы используете две одинарные кавычки вместо двойной кавычки.

person codaddict    schedule 28.09.2010
comment
Это была опечатка, когда я помещал его в переполнение стека, извините - person Elpezmuerto; 28.09.2010