Какая оболочка самое близкое к синтаксису C/C++?

Я плохо знаком с миром Linux, и я использовал Windows и писал Visual C++ в течение прошлого года или около этого. Я нахожу, что удар, кажется, самая популярная оболочка в мире Linux. Существует ли оболочка CLI Linux, которая была бы самой близкой для избиения возможностей, но с C/C++ вводит синтаксис?

5
задан 12 March 2016 в 01:10

2 ответа

Существует CSH, который отвечает всем требованиям.

От Википедия

оболочка C (csh или улучшенная версия, tcsh, на большинстве машин) является оболочкой Unix, которая была создана Bill Joy, в то время как он был аспирантом в Калифорнийском университете, Беркли в конце 1970-х. Это было распределено широко, начавшись 2BSD выпуск системы Unix BSD, которую Joy начал распределять в 1978. 2 Другими ранними участниками идей или кода был Michael Ubell, Eric Allman, Mike O'Brien и Jim Kulp.

Страница справочника

Или Вы могли попробовать TCSH (Спасибо! @muru)

От Википедия

tcsh (/ЛЊtiЛђЛ€siЛђКѓЙ ›l/"tee-cee-shell",/Л€tiЛђКѓЙ› l/"оболочка мишени", или поскольку акроним "кладет cee название буквы H эс для первого удара"), оболочка Unix на основе и совместимый с оболочкой C (csh). Это - по существу оболочка C с программируемым завершением командной строки, редактированием командной строки и несколькими другими функциями. В отличие от других общих оболочек, функции не могут быть определены в tcsh сценарии, и пользователь должен использовать псевдонимы вместо этого (как в csh).

Примечание, что эти оболочки не используются так широко как удар и следовательно некоторые make-файлы и сценарии оболочки, может вести себя непредсказуемо.

Страница справочника

11
ответ дан 23 November 2019 в 08:39

Bash поддерживает некоторый синтаксис C-стиля. Например:

  • Объявления функции / определения синтаксически подобны объявлениям функции / определения в C, кроме Вас, dont't не определяют никакой параметры (которые выбираются с помощью позиционных параметров $1, $2, $3...), ни типы возврата (Bash не использует типы вообще):

    foo() {
        # ...
    }
    

    Или снова так же к C использование встроенного объявления / определение:

    foo() { #...; }
    

    Быть отмеченным, что при использовании встроенного объявления / определение первый и последний оператор должен быть разделен пробелом от { и } соответственно и что (снова так же к C) каждый оператор должен быть разделен от точки с запятой от других и что заключительный оператор должен закончиться точкой с запятой:

    foo() { command1; command2; command3; }
    

    Для полноты альтернативный способ объявить / определяющий функцию использует ключевое слово function, которому не нужно () после имени функции:

    function foo {
        #...
    }
    
  • Можно оценить выражение C-стиля путем включения их в двойную круглую скобку (()): множество операторов C-стиля поддерживается, (включая присвоение), например: =, >, >=, ==, !=, <, <=, &&, ||, !, среди других:

    $ i=0
    $ j=1
    $ ((i > j)) && echo True
    $ ((i >= j)) && echo True
    $ ((i == j)) && echo True
    $ ((i != j)) && echo True
    True
    $ ((i < j)) && echo True
    True
    $ ((i <= j)) && echo True
    True
    $ ((i && j)) && echo True
    $ ((i || j)) && echo True
    True
    $ ((\! i)) && echo True
    True
    $ ((\! j)) && echo True
    $ ((i = j))
    $ echo $i
    1
    $ echo $j
    1
    

    Этот способ оценить выражения C-стиля может использоваться в сочетании с if, while и until операторы:

    if((i == 0)); then
        # ...
    done
    
    while((i == 0)); do
        # ...
    done
    
    until((i == 0)); do
        # ...
    done
    

    Прежде всего, (()) также позволяет писать C-стиль for условия цикла:

    for((i = 0; i < 3; i++)); do
        # ...
    done
    
  • Оценка выражений C-стиля не поддерживает присвоение результата оценки; для этого можно использовать арифметическое расширение ($(())), который допускает своего рода присвоение выражений C-стиля:

    $ i=0
    $ j=1
    $ k=$((i > j))
    $ echo $k
    0
    $ k=$((i < j))
    $ echo $k
    1
    $ x=$((1 + 2 + 3))
    $ echo $x
    6
    
  • C-стиль, снабженный префиксом / снабженный постфиксом инкремент / операторы понижения, также поддерживается:

    ++i
    i++
    --i
    i--
    
9
ответ дан 23 November 2019 в 08:39

Другие вопросы по тегам:

Похожие вопросы: