bash 启动变量表达式

bash 启动变量表达式

我有一个想法,我想在我的 ~/.bashrc 文件中添加一个环境变量(“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 && 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 文件中的“export waitTillReady=”行之后写什么吗?

我将非常高兴听到任何建议/想法(也许还能解释我做错了什么),谢谢!

答案1

如果语法正确,export则只会运行一次代码,当您的终端启动并将结果设置为环境变量时,您可以使用它来调用它$waitTillReady

您需要一个alias,或者更简单的一个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

相关内容