首页 > 解决方案 > 如果路径不存在,请尝试其他路径

问题描述

我正在尝试使以下内容正常工作,有人可以帮助我使用 bash。

如果以下路径“/opt/james/Mike${INSTANCE}/local/log/appserver.log”不存在,请改用:“/opt/james/Mike${INSTANCE}/log/appserver.log”

到目前为止我已经尝试过:

printf "waiting for the app to start..."
{ tail -n 0 -f /opt/james/Mike${INSTANCE}/local/log/appserver.log & } | sed -n '/Server startup in/q'

{
if [ ! -f "/opt/james/Mike${INSTANCE}/local/log/appserver.log" ]; then
    echo "/opt/james/Mike${INSTANCE}/log/appserver.log"
    exit 0
fi

有没有更好的方法来写这个?

标签: linuxbash

解决方案


我猜你想要这样的东西?

for p in "/opt/james/Mike${INSTANCE}/local/log" "/opt/james/Mike${INSTANCE}/log"; do
    test -f "$p/appserver.log" || continue
    log=$p/appserver.log
done
: maybe fail if "$log" is unset
: do things with "$log"

推荐阅读