linux - 如果路径不存在,请尝试其他路径
问题描述
我正在尝试使以下内容正常工作,有人可以帮助我使用 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
有没有更好的方法来写这个?
解决方案
我猜你想要这样的东西?
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"
推荐阅读
- c++builder - MSXML2.DOMDocument.6.0“MultipleErrorMessages”属性名称无效
- reactjs - 使用 webpack 调用不同端口的其他应用 || 反应
- python - 使用 Python 从 Json 代码中提取值
- sql - 将 Select 语句更改为更新语句
- python - 在 Python 中取消嵌套/规范化 JSON
- python - 如何使用 `argparse` 设置 3 个参数中的任意 2 个?
- flutter - showDialog 在 Flutter 中给出错误
- javascript - 渲染带有错误的视图和可以返回给 AJAX 的输入
- twitter - 如何使用 5000 个用户 ID 调用 Twitter 的 POST /statuses/filter?
- checksum - RFID 标签 ID (TID) 是否有 CRC?