(Ваш заголовок говорит csh
, но вы добавили это с rc-shell
. Обратите внимание на небольшое количество последователей для rc-shell
. Существует также несколько более новый tcsh
вариант, который имеет больше интерактивных возможностей, чем оригинальный csh
и, кажется, до сих пор a следующее)
Является ли значение месяца строкой или числом и могу ли я напрямую сравнить это значение со значением 1?
csh
только имеет один тип данных, и это строка. Вы можете вызывать внешние программы, которые понимают строковые номера, такие как bc
, dc
и, конечно, языки, такие как awk
, perl
, python
и т. Д., Но когда вы передаете значение программе, над которой нужно работать, это строка. Тем не менее, вы правильно используете синтаксис Csh @
«сложное задание».
Если вы просто просите, вы можете вычесть 1 из переменной с именем $ month, тогда ответ будет да, используя @ month-=1
. Что произойдет, когда $ month = «02» ?, Не уверен, просто выполните тест, и вы увидите ;-).
Нужно ли включать набор каждый раз, когда я использую букву, хотя я уже сказал, что установлен раньше?
Да, set
является частью CSH синтаксиса для установки переменной
Как сделать иначе, если заявления работать в CShell?
?? Как и любой другой язык? Вы знаете, как они работают на другом языке? Они только оцениваются (и код внутри выполняется), если предыдущий тест if
не прошел.
Нужны ли массивы в CShell, как в java? Я знаю, что в java я бы сделал месяц-1, однако из моих исследований я прочитал, что массив начинается с 1 и НЕ 0. Это правда?
Я уверен, что csh
- это индекс на основе одного. К сожалению (или нет), у меня нет доступа к csh либо дома, либо на работе, поэтому я не могу выполнить простой тест. Просто полагайтесь на доказательства, которые вы найдете.
И может ли кто-нибудь сказать мне, почему я получаю сообщение об ошибке?
Не видя точного сообщения об ошибке, которое вы получаете, будет трудно сказать. Также был бы полезен контекст. Напротив, вы можете это увидеть сами, используя опцию debug/trace set -vx
. Если может быть более очевидным, когда скрипт терпит неудачу с этим выходом. ИЛИ, если скрипт отказывается запускаться вообще, закомментируйте большой сегмент скрипта, просто чтобы он его запустил, а затем раскомментируйте логические разделы, пока не найдете фрагментацию кода. (Если вы хотите опубликовать точную ошибку msgs, то, пожалуйста, отредактируйте свой вопрос, чтобы включить это, не публикуйте в качестве комментария к этому ответу, пожалуйста).
IHTH