Оператор модуля оболочки C

#linux #csh

#linux #csh

Вопрос:

Я знаю, что оболочка c очень недружелюбна, но я застрял с ней. Итак, может ли кто-нибудь помочь мне с этой синтаксической ошибкой, которая должна быть простой? Я хотел бы использовать оператор модуля в оболочке C. Итак, команда выглядит так, и она продолжает выдавать мне синтаксическую ошибку команды expr.

 set aVAr =`expr $number * 2 % $frequency`
  

Я обнаружил, что могу ввести «выражение 6 % 5» и «выражение 3 * 2». Однако я не могу использовать command как «выражение 3 * 2 % 5». Что в этом плохого? Я думаю, что CSH должен быть таблицей для одновременного приема трех операндов? Большое вам спасибо,

Ответ №1:

expr является командой, а не частью csh. Вы должны экранировать * , чтобы csh не пытался его расширить, как в

 set aVAr =`expr $number * 2 % $frequency`