!<
这个bash脚本中的含义是什么,为什么它指向不存在的文件?
bash -c 'while !</dev/tcp/db/5432; do sleep 1; done; npm start'
在此先感谢您的时间!
!
是一个否定运算符。例:
while ! false; do
echo "inside while loop"
sleep 1
done
因为永远! false
是真的,所以它将永远在循环内部。
<
是另一个运算符。它告诉bash读取指定的文件。如果文件存在并且可读,它将成功(返回零退出代码)。没有左操作数,读取结果将被丢弃。示例:检查是否/tmp/sample_file
存在:
if < /tmp/sample_file; then echo 'file exists'; fi
因此,您的代码将sleep 1
在/dev/tcp/db/5432
无法读取的情况下循环运行。
现在考虑到这/dev/tcp/
是一条特殊的路径,并且访问/dev/tcp/db/5432
方式尝试db
通过TCP端口5432连接到主机。
因此,while循环背后的逻辑是“休眠直到主机db上的postgresql准备就绪”(5432是PostgreSQL的默认端口)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句