有人知道这是怎么回事吗
if ! /fgallery/fgallery -v -j3 /images /usr/share/nginx/html/ "${GALLERY_TITLE:-Gallery}"; then mkdir -p /usr/share/nginx/html
我理解第一部分是说如果/fgallery/fgallery目录不存在,但在这之后我就不清楚了。
最佳答案
在BASH中,我们可以根据命令的退出状态构建一个if:
if command; then echo "Command succeeded" else echo "Command failed" fi
部分在命令以0和then部分退出时执行。
你的代码正是这么做的。
它可以重写为:
/fgallery/fgallery -v -j3 /images /usr/share/nginx/html/ "${GALLERY_TITLE:-Gallery}"; fgallery_status=$? if [ "$fgallery_status" -ne 0 ]; then mkdir -p /usr/share/nginx/html fi
但是前一种构造更优雅,更不容易出错。
请参阅以下文章:
How to conditionally do something if a command succeeded or failed
Why is testing "$?" to see if a command succeeded or not, an antipattern?