我有一个想法,我想在我的 ~/.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