колотите запускают переменное выражение

У меня есть идея, что я хотел бы добавить переменную среды ("waitTillReady") к моему ~/.bashrc файл, такой что вместо того, чтобы делать это:

while [ "$(pidof -s make)" -o "$(pidof -s gcc)" -o "$(pidof -s ld)" ]; do echo "Still compiling..." && sleep 1; done && printf "\n%.0s" {1..20} && date && echo "THINGS ARE READY FOR YOU NOW..."

Я хочу смочь сделать это: $waitTillReady && echo "THINGS ARE READY FOR YOU NOW..."

Я пытался отредактировать свой ~/.bashrc файл как с различными комбинациями следующего:

...
export waitTillReady="while [ "$(pidof -s make)" -o "$(pidof -s gcc)" -o "$(pidof -s ld)" ]; do echo "Still compiling..." && sleep 1; done && printf "\n%.0s" {1..20} && date"
...

Например, Я пытался включить все инсайдер одинарная кавычка, 'и я пытался выйти \" в середине... Кто-либо мог помочь и сказать то, что я должен записать в ~/.bashrc файлу после "экспорта waitTillReady =" строка?

Я был бы благодарен услышать любые предложения/идеи (и возможно объяснение того, что я делаю неправильно), Спасибо!

2
задан 17 July 2019 в 14:52

1 ответ

Если синтаксис был правилен, export выполнил бы Ваш код только однажды, когда Ваш терминал запускает и устанавливает результат как переменную среды, которую можно назвать использованием $waitTillReady.

Вам нужно alias или возможно более легкий a shell function.

Вставьте это Ваш .bashrc:

waitTillReady() {
    while pgrep '^(make|gcc|ld)$' &>/dev/null; do
        echo "Still compiling..." && sleep 1
    done && printf "\n%.0s" {1..20} && date
}

Затем после затем запускаются Вашего терминала, можно использовать его как он, была команда:

waitTillReady; do_something
3
ответ дан 2 December 2019 в 02:39

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

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