Предварительная обработка заголовочного файла C

В bash вы можете написать такую ​​функцию-оболочку.

function scp { 
  if grep -q ':[^ $]' <<< "$*" ; then
    command "${FUNCNAME[0]}" "$@"
  else
    echo "missing or invalid hostname:path in scp command"
    return 1
  fi
}

Это очень грубый пример, все, что он делает, это проверяет наличие :, за которым следует хотя бы один не -символ пробела в командной строке (, что достаточно для доказательства --концептуальный пример, но неподходящий для реального -использования в мире ). Если есть, запускает команду scp. Если нет, выводится сообщение об ошибке и возвращается с кодом выхода 1.

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

Кстати,Я сказал «В bash» выше, потому что я тестировал вышеуказанную функцию только в bash. Это не означает, что это может сделать только bash. Большинство других реализаций sh позволяют вам делать то же самое или подобное. Синтаксис может незначительно отличаться, и вам может потребоваться жесткий -код command scp..., а не более общий command "${FUNCNAME[0]}...".

PS :Я не берусь судить о том, "должен ли" вести себя scp таким образом или нет. Это вам решать по вашей собственной системе. Однако зависимость от подобных вещей ставит вас в крайне невыгодное положение, когда вам приходится работать в системе без всех ваших пользовательских хаков/костылей.

1
02.08.2019, 11:27
1 ответ

Используйте опцию -P(запретить создание маркеров линий):

gcc -P -E -xc input > output

Другими интересными опциями являются -Cи -fpreprocessed; вы можете найти их все на справочной странице gcc(1).

1
27.01.2020, 23:41

Теги

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