Как добавить метку времени к соответствующей строке, используя env.Command SCons

Я пытался заменить строку имен файлов.txt в файле.properties, используя команду оболочки shell в функции env.Command SCons. В настоящее время я не понимаю, как добавить метку времени к этим именам файлов в этом файле.

Наивно я пытался использовать переменные bash на этапе сборки следующим образом:

 env.Command('foo.out', 'foo.in', "dateVar=$(date +%F-%k-%M); sed -i \"s/\.txt/\.txt?v=$dateVar/g\" example.properties");

... но это только привело к неудачам, так как SCons попытался разобрать что-либо со знаком доллара. Кто-нибудь знает, как я могу добиться этого дополнения?

1 ответ

Решение

Защитить $ от парсера SCons, написав его как $$:

env.Command('foo.out', 'foo.in',
            'dateVar=$$(date +%F-%k-%M); '
            'sed -i "s/\.txt/\.txt?v=$$dateVar/g" example.properties');
Другие вопросы по тегам