Программирование на C Shell - пользовательский ввод и сравнение - PullRequest
0 голосов
/ 11 апреля 2011

Простой вопрос для кого-то, кто знает немного программирования на C-оболочке

Я публикую некоторые строки кода моей программы

........
set gramma = $<
else if ($gramma == 's') then
echo " ta defterolepta pou menoun ine " secs_remain
else if ($gramma == 'm') then
@ min = $secs_remain % 60
@ secs = $secs_remain - ($min*60)
echo " o xronos pou meni ine " min " lepta ke " secs " defterolepta "
else if ($gramma == 'h') then
.........

Мой вопрос о персонаже.Как видите, я читаю символ с клавиатуры.По команде if нужны ли моему персонажу ' и '?

Или я могу просто написать символ?

Например

if ($gramma == 's') then

или

if ($gramma == s) then

Я знаю, что если это была строка, то это будет

if ($gramma == "sexy") then

, а если число

if ($gramma == 4) then

А как насчет одного символа?

1 Ответ

1 голос
/ 11 апреля 2011

Я думаю, вы спрашиваете, должна ли правая часть сравнения всегда заключаться в одинарные кавычки? == 'm' (правая сторона)

И, конечно, ответ зависит

Одинарные кавычки означают, что любые значения переменных внутри НЕ будут расширены до значения, которое было присвоено. Если у вас есть значения переменных, заключите их в двойные кавычки.

Вы можете пропустить одинарные ИЛИ двойные кавычки, если вы действительно, действительно, действительно уверены, что у вас никогда не будет значения справа, которое оценивается как мульти- ' значение слова с пробелами. Вам действительно нужно использовать кавычки (одинарные или двойные), чтобы избежать проблем с пробелами.

Я думаю, что общее мнение людей, которые пишут книги о кодировании оболочки, заключается в том, что вы всегда хотите окружить левую и правую стороны операций сравнения строк (==,! =, ~ =) Соответствующими кавычками , двойной, если требуется расширение переменной, одинарный, если нет.

...