当前位置: 首页 > news >正文

专做智能化施工的网站济南建网站公

专做智能化施工的网站,济南建网站公,烟台市未成年思想道德建设网站,2345影视下载官网电视剧文章目录 修改前缀路径dirname set常用函数参数变量local 返回值正则打印第 n 行获取行号核对数据库各表数量jq查询检查日志 sshpassexpect数组xargs bash manual 修改前缀 参考 export PS1bash 路径 dirname strip last component from file name dir$(… 文章目录 修改前缀路径dirname set常用函数参数变量local 返回值正则打印第 n 行获取行号核对数据库各表数量jq查询检查日志 sshpassexpect数组xargs bash manual 修改前缀 参考 export PS1bash 路径 dirname strip last component from file name dir$(dirname $0)EXAMPLESdirname /usr/bin/- /usrdirname dir1/str dir2/str- dir1 followed by dir2dirname stdio.h- .set 运行 bash script.sh 后会创建一个子 shell可通过 set 命令对子 shell 的运行环境参数做查看和写入。其中可定制的参数有很多详见 gnu shell manual 直接执行 set 会显示已设置的环境变量 和 shell 函数set -e只要出错即返回非 0 值就停止运行set -o pipefailset -e 对于含有管道的命令无效加上个参数后管道中任意命令出错都停止运行。 若 $? 表示上一次执行结果非 0 则表示错误如果希望忽略某些错误则可通过 || echo 强行输出返回值为 0 set -u遇到未定义变量或方法时停止运行set -x执行每条命令前输出命令原文 常用函数 ts$(date %s) # 获取日期如1682072409 echo a:b | cut -d : -f 2 # 截取第二项下标从0开始 tag$(cat a.txt) # 命令的结果需要用${}包围 uriwww.${tag}.com # 字符串拼接时需要用$包裹变量参数 $0 表示文件名 $1 表示第一个参数 if [x$1 x] 语句是一个等式检查查看 “x$1”即变量$1前面加上一个x是否等于 “x”。如果等于说明变量$1是空的。 使用 “x$1” 的原因是为了防止某些特殊情况造成的问题。例如当 $1 的值为一个开头为 “-” 的字符串时例如 “-n”如果不加 “x”表达式会变成 -n 这可能会被shell解析为一个命令选项而不是字符串比较从而导致错误。 所以[x$1 x] 语句的含义就是检查变量$1是否为空而且这种方式可以避免某些特殊情况下的错误。 变量 local 在shell脚本中local是一种内建命令用于在函数内部声明局部变量。这意味着这个变量的作用范围仅限于声明它的函数一旦离开了该函数这个变量就不再存在。 如果在函数内部没有使用local声明变量那么这个变量就是全局的可以在整个脚本中访问。 例如考虑以下脚本 #!/bin/bashfunction test_local() {local local_varIm localglobal_varIm globalecho $local_varecho $global_var }test_local echo $local_var echo $global_var运行这个脚本的输出将是 Im local Im global 空行 Im global可以看到local_var 在函数外部是不可见的而 global_var 在整个脚本中都是可见的 返回值 if [ -z $plugin ]; then 字符串是否为0’ 正则 LeetCode193 bash题 打印第 n 行 grep -n file.txt | grep -w 10 | cut -d: -f2 sed -n 10p file.txt awk {if(NR10){print $0}} file.txt tail -n 10 file.txt | head -1获取行号 row_num$(cat file.txt | wc -l) echo $row_num if [ $row_num -lt 10 ];thenecho The number of row is less than 10 elseawk {if(NR10){print $0}} file.txt fi核对数据库各表数量 # input_table.list table1 table2 table3 table4 table5#!/bin/bash start$(date -j -f %Y-%m-%dT%H:%M:%S 2022-02-21T00:00:00 %s) end$(date -j -f %Y-%m-%dT%H:%M:%S 2022-02-22T00:00:00 %s) start$(bc -e $start*1000) end$(bc -e $end*1000) for i in $(cat input_table.list); doecho $ipsql -h192.168.2.163 -p5432 -Upostgres -ddeepface_data -c select count(1) from $i where ts $start and ts $end donejq 查询 {FOO: {name: Donald,location: Stockholm},BAR: {name: Walt,location: Stockholm},BAZ: {name: Jack,location: Whereever} }# cat mytxt | jq .[] | jq .name Jack Walt Donald# jq .[] | select(.locationStockholm) mytxt {name: Donald,location: Stockholm } {name: Walt,location: Stockholm }# jq -r .FOO.name mytxt # 查 json 某 key 对应的 value Donald检查日志 #!/bin/bash # 过滤出.level error, 但不含某些错误的日志 jq select(.levelerror)|select(.msg!pq: no partition of relation found for row)|select(.msg!json: cannot unmarshal object into Go struct field) /logs/myprocess.errsshpass #!/bin/bash set -x appa.txt b.json nodes$(cat node.list) passwordqqq cd PKG for i in $nodes; doip$(echo $i| cut -d: -f1)port$(echo $i| cut -d: -f2)sshpass -p $password scp -o StrictHostKeyCheckingno -P $port $app root$ip:~/data done cd -expect expect 可以非交互式输入命令设置如下 /Users/y/login.exp然后 /Users/y/login.exp myname 192.168.2.99 mypass 即可ssh不需输入密-码并且sudo -i不需输入密-码简化操作。 ➜ Desktop cat /Users/y/login.exp #!/usr/bin/expectset timeout 3 spawn ssh [lindex $argv 0][lindex $argv 1] expect {(yes/no)?{send yes\n;exp_continue}password:{send [lindex $argv 2]\n;exp_continue}from{send sudo -i\n;}{send sudo -i\n;exp_continue}password:{send [lindex $argv 2]\n;} } interact数组 参考 xargs 在 xargs 命令中{} 是一个占位符它表示 xargs 应该在哪里插入输入的参数。在使用 xargs 时你可以用 -I 选项指定一个替代字符串然后在命令行中的任何位置使用这个字符串xargs 就会把这个字符串替换为从输入中读取的每个参数。 例如以下命令 echo 1 2 3 | xargs -I {} echo Number: {}会输出 Number: 1 Number: 2 Number: 3如果你在同一条命令中使用了两个 {}xargs 会把它们都替换为相同的参数。例如以下命令 echo 1 2 3 | xargs -I {} echo Number: {} and again: {}会输出 Number: 1 and again: 1 Number: 2 and again: 2 Number: 3 and again: 3在这个例子中每一行都包含两个 {}xargs 会把它们都替换为相同的参数。 示例批量删除 docker container docker ps | grep unload | awk {print $11} | xargs -I {} docker rm -f {} 1. docker ps列出所有运行中的 Docker 容器。 2. grep unload从上述列表中找出含有 unload 的行。 3. awk {print $1}从找到的行中提取出第一个字段默认情况下这是容器的 ID。 4. xargs -I {} docker rm -f {}对每一个找到的容器 ID执行 docker rm -f 命令来强制移除容器。
http://www.zqtcl.cn/news/816245/

相关文章:

  • 十大免费自助建站上传网站到空间
  • 深圳企业做网站简约个人网站
  • 茂名放心营销网站开发网站怎么做app
  • php语言 网站建设专业的外贸网站建设公司价格
  • 看英语做游戏的网站wordpress与微信对接
  • 企业网站打不开了看守所加强自身网站建设工作
  • 长汀网站建设做电池的有哪些网站
  • 做软件常用的网站厦门建设局地址
  • 沭阳三剑客做网站科技 公司 响应式 网站
  • 深圳网站建设培训哪家好曲阜网架公司
  • wordpress建立网站实例贵阳网站开发谁家做的好
  • 百度网站推广怎么收费中国科技成果
  • 枣庄企业网站建设wordpress 评论群发
  • 网站视觉设计方案视频制作素材
  • 哪个网站专做民宿wordpress 主题教程
  • 网站后台 设计北京海淀区官网
  • 公司官网网站建设想法wordpress oss
  • 如何自己创建网站招聘网站代理
  • 手机网页视频提取工具seo网站是什么
  • seo网站优化公司龙岩网站设计一般要多久
  • 江苏自助建站系统哪家好go语言网站开发
  • 建设网站 注册与登陆wordpress产品上传
  • 河北省住房与建设厅网站陶瓷刀具网站策划书
  • 大型商城网站建设方案程序外包
  • 邵阳网站建设制作电子商务网站开发软件
  • 怎样推广网站平台树莓派 wordpress mysql
  • 互联网公司网站建设wordpress发文章设置文字大小
  • 国科联创网站建设无锡网站建设有限公司
  • 网站开发官网源码石家庄怎样做网站
  • 做网站的开发工具北京公司网站制作电话