i进击的攻城狮 2022-03-08 18:06 采纳率: 97.9%
浏览 19
已结题

linux的shell脚本,怎么读取外部配置文件呢?

我有一个需求,需要编写一个脚本,通过判断当前机器的ip,更具ip做出不同的行为,我想把ip地址分类配置到一个配置文件里面,读取配置文件,然后和当前ip地址做对比,然后执行不同的动作

  • 写回答

2条回答 默认 最新

  • i进击的攻城狮 Java领域新星创作者 2022-03-22 16:34
    关注
    
    get_value_of_properties_file() {
      result=""
      proFilePath="$1"
      key="$2"
        if [ "WJA${key}" = "WJA" ]; then
        echo "参数错误,未能指定有效Key。"
        echo "" >&2
        exit 1
      fi
      if [ ! -f ${proFilePath} ]; then
        echo "属性文件(${proFilePath})不存在。"
        echo "" >&2
        exit 1
      fi
      if [ ! -r ${proFilePath} ]; then
        echo "当前用户不具有对属性文件(${proFilePath})的可读权限。"
        echo "" >&2
        exit 1
      fi
      keyLength=$(echo ${key}|wc -L)
      lineNumStr=$(cat ${proFilePath} | wc -l)
      lineNum=$((${lineNumStr}))
      for ((i = 1; i <= ${lineNum}; i++)); do
        oneLine=$(sed -n ${i}p ${proFilePath})
        if [ "${oneLine:0:((keyLength))}" = "${key}" ] && [ "${oneLine:$((keyLength)):1}" = "=" ]; then
          result=${oneLine#*=}
          break
        fi
      done
      echo ${result}
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 3月30日
  • 已采纳回答 3月22日
  • 创建了问题 3月8日

悬赏问题

  • ¥50 关于#微信小程序#的问题:微信小程序支持h5实现webrtc h264 h265低延迟传输渲染,能付费帮我们解决一下吗
  • ¥20 请问ansys License manager 这个问题如何解决
  • ¥15 memory.limit()' is no longer supported
  • ¥15 基于stm32f4产生两路pwm信号并可由串口通信调节
  • ¥15 C++/QT设置函数调用条件(多个功能调用同一,且各自调用条件不同)
  • ¥15 UE5样条线生成的网格UV问题
  • ¥15 如何用最短的时间大致看懂springboot+vue的项目
  • ¥15 (有偿)懂数值分析和含时变参数微分方程的来
  • ¥15 abaqus随机生成二维颗粒
  • ¥15 安装ansys许可证管理器时出现了这个问题,如何解决?