Если вы собираетесь использовать синтаксис #include "file"
как в программировании на C язык, который вы могли бы использовать cpp
для его разбора. Скажем, если ваш main.txt
выглядел так:
Some text
#include "fragment1.txt"
Some other text
#include "fragment2.txt"
Some other text
ты мог бы сделать:
$ cpp -nostdinc -P <main.txt
Some text
This is content of fragment1
Some other text
This is content of fragment2
Some other text
Как поясняется вman cpp
:
-nostdinc Do not search the standard system directories for header files. Only the directories you have specified with -I options (and the directory of the current file, if appropriate) are searched.
-P Inhibit generation of linemarkers in the output from the preprocessor. This might be useful when running the preprocessor on something that is not C code, and will be sent to a program which might be confused by the linemarkers.
Обратите внимание, однако, что cpp
делает больше, чем анализирует #include
строк и в зависимости от вашего варианта использования это может быть или не быть полезным. Для например, cpp
автоматически удаляет все комментарии в стиле C -:
// this is a comment
/* this as a comment too /*
Это выглядит полезным, и если вы хотите сохранить комментарии, вы можете использовать опцию -C
. Другое дело что cpp
попытается интерпретировать все строки, начинающиеся с #
, как директивы препроцессора. Например, это:
#define A 7
Value: A
будет напечатано как:
Value: 7
и это
#blah blah
выдаст ошибку:
<stdin>:14:2: error: invalid preprocessing directive #blah
На практике существуют некоторые программы, использующие cpp
. парсер конфигов, например xrdb
.
Зачем вам 2 разных кронтаба (нельзя на уровне пользователя, только на уровне системы в/etc/cron.d
-там в отдельных файлах можно указать пользователя который запускает крон )? Просто сделайте 2 строки в одном crontab, каждая с другим расписанием. Или другую команду/скрипт для выполнения, который проверит ваше состояние и решит, запускать ли некоторые команды или нет.
См. дальнейшее обсуждение сохранения отдельных файлов и их установки в ваш (один )crontab здесь:https://superuser.com/questions/391246/multiple-crontabs-for-one-user
В основном (псевдо--код )делает это:
if <something> cat file1 | crontab; else <something-else> cat file2 | crontab; fi
, который в любом случае должен работать на cron
. Так что мое предыдущее предложение более элегантно в этом смысле.