zoukankan      html  css  js  c++  java
  • 自己常用的一些Shell记录

    最近在部署局域网Jenkins打包和Apache服务,遇到一些值得记录的过程。

    1.输出字符写入文件,追加在文件末尾

     echo "123" >> 123.txt 

    2.输出字符写入文件,覆盖文字

     echo "123" > 123.txt 

    3.curl命令在post请求带嵌套JSon参数,且参数是shell变量时需要对参数转义 (curl用法指南: http://www.ruanyifeng.com/blog/2019/09/curl-reference.html

     1 content="fir_im: $firUrl 
    打包人: $BUILD_USER  $Branch"
     2 echo $content
     3 
     4 curl "https://XXX" 
     5    -H "Content-Type: application/json" 
     6    -d "{
     7          "msgtype": "text",
     8          "text": {
     9             "content": "$content"
    10          }
    11    }"

    4.curl将返回值写入本地文件

     curl https://ip.taobao.com/getIpInfo.php?ip=192.168.1.30 > ip.json 

    5.利用jq在Shell中读取json字段 (jq官方手册: https://stedolan.github.io/jq/tutorial/)

     cat ip.json | jq .data.QUERY_IP 

    6.将curl返回值保存在shell变量中

     ipResult=$(curl https://ip.taobao.com/getIpInfo.php?ip=192.168.1.30) 

    7.Mac下Shell使用sed命令报错,需要使用gsed,参考https://www.zhiqiexing.com/87.html

    安装

     brew install gnu-sed 

    8.sed替换所有原字符串

     sed 's/原字符串/替换字符串/g' 

    9.sed查找文件中字符串所在的行,且用新字符替换整行内容,重新保存到文件中

     sed -i "s/^.*原字符串.*$/新字符/" useradd.txt ,这个命令如果原字符串里带有一些如/这种字符串,会导致报错。所以下面使用两个命令来实现整行字符串替换操作。

     例如,原html其中一部分为

     a.先找到字符串"{{"所在的行 lineNum=$(sed -n -e "/{{/=" index.html) 

     b.将整行替换

    newStr="<p>ipa更新时间:{{2021-10-18 12:00:00}}</p>"
    gsed -i "${lineNum}c $newStr" index.html

    替换后的结果如下

    10.grep查找字符串和查找除xx之外的字符串

     grep xx  grep -v xx 

    11.截取指定字符串后面的字符(参考$结合各种符号的使用: https://www.cnblogs.com/nkwy2012/p/9171408.html

    willCatStr=$(cat firlog.txt | grep "Published succeed:") 
    firUrl=`echo ${willCatStr#*succeed:}` # fir下载url

    12.日期格式化输出

     curTime=$(date "+%Y-%m-%d %H:%M:%S") 

  • 相关阅读:
    戴德金分割第6页
    自己总结的学习方法
    自己总结的选股方法和建仓方法
    自编通达信公式集合
    电脑目录设置
    1·0天内跳空缺口的公式
    springsecurity
    java开发 日志框架选择
    javaFramwork title
    idea git忽略文件
  • 原文地址:https://www.cnblogs.com/buerjj/p/15413886.html
Copyright © 2011-2022 走看看