The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
echo с кавычками и без (очень глупый вопрос), !*! Paul, 19-Авг-05, 16:16  [смотреть все]
Соврешенно идиотский вопрос, но я просто не пойму даже в чем проблема может быть.

Положим есть такой совершенно дебильный скрипт, назовем его test.csh:

"#!/bin/csh

if ( $1 == a ) then
echo "AAAAAAAAAAAAA!"

endif

exit"

При попытке его выполнить с параметром a, то есть

test.csh a

выдается сообщение об ошике по поводу кавычки " - типа не понятно что с ней делать.

Соответственно если заменить строчку с echo на

echo AAAAAAAAAAAAA!

то все работает.

При этом если в интерактивном режиме работают естественно (ну то есть для меня это естественно, но похоже, что я заблуждался) оба варианта.
Поясните, пожалуйста, в чем тут дело. Почему он не хочет работать с вариантом с кавычками.

Я понимаю, что вопрос идиотский, но просто не понятно даже где искать ответ.

Да еще, система  - Solaris.

  • echo с кавычками и без (очень глупый вопрос), !*! Alexander S. Salieff, 18:41 , 26-Авг-05 (1)
    >Соврешенно идиотский вопрос, но я просто не пойму даже в чем проблема
    >может быть.
    >
    >Положим есть такой совершенно дебильный скрипт, назовем его test.csh:
    >
    >"#!/bin/csh
    >
    >if ( $1 == a ) then
    >echo "AAAAAAAAAAAAA!"
    >
    >endif
    >
    >exit"
    >
    >При попытке его выполнить с параметром a, то есть
    >
    >test.csh a
    >
    >выдается сообщение об ошике по поводу кавычки " - типа не понятно
    >что с ней делать.
    >
    >Соответственно если заменить строчку с echo на
    >
    >echo AAAAAAAAAAAAA!
    >
    >то все работает.
    >
    >При этом если в интерактивном режиме работают естественно (ну то есть для
    >меня это естественно, но похоже, что я заблуждался) оба варианта.
    >Поясните, пожалуйста, в чем тут дело. Почему он не хочет работать с
    >вариантом с кавычками.
    >
    >Я понимаю, что вопрос идиотский, но просто не понятно даже где искать
    >ответ.
    >
    >Да еще, система  - Solaris.

    Дело в том, что строка в кавычках интерполируется шеллом на предмет спецсимволов. Вообще, строка без кавычек тоже должна, хотя тут поведение нестабильное. Единственное, что 100% не интерполируется, это строка в апострофах. Интерполятивное значение спецсимвола "!" - это некий event, подставляющий как-то по хитрому предыдущие и текущую комманду, точно не помню.

    [salieff@saliev /]$ echo 'AAA!'
    AAA!
    [salieff@saliev /]$ echo "AAA!"
    bash: !": event not found
    [salieff@saliev /]$ echo "$HOME"
    /home/salieff
    [salieff@saliev /]$ echo '$HOME'
    $HOME




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2025 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру