如何通过shell循环获取指定文件的某个值

如何通过shell循环获取指定文件的某个值,第1张

#!/bin/bash

cat jstxt | while read line

do

IP=`echo $line|awk '{print $1}'`

PORT=`echo $line|awk '{print $2}'`

ID=`echo $line|awk '{print $3}'`

java -jar JavaLoginjar $IP $PORT $ID

done

另外,假如在命令里面,三个参数是连在一起的,为啥不直接整行处理呢?

#!/bin/bash

cat jstxt | while read line

do

java -jar JavaLoginjar $line

done

return=`linux命令` 会将linux命令的结果赋值给return

return=$(linux命令)也是将linux命令的结果赋值给return的一种方式

灵活使用能解决很多问题

shell中获取参数可以直接使用$1、$2等形式来获取,但这种方式有明显的限制: 每个参数的位置是固定的。 比如如果在设计上 $1是ip地址$2是端口,那在执行时就必须第一个参数是ip第二个参数是端口而不能反过来。

shell提供了getopt和getopts来解析参数, getopt比getopts功能强一些getopts比getopt简单一些; 总体而言getopt和getopts都差强人意。

getopt比getopts强一些复杂一些:能在命令行中单独使用、支持长选项格式、支持选项值可选。更多说明见注释。

执行结果:

参考:

>

1、 读取配置文件时,将注释符#标记的行和空行全部过滤 sed -E '/^#|^ $/d' $env_file 。

2、 匹配指定参数相符的行并截取对应的值 awk -F "${param}=" "/${param}=/{print \$2}" 。

3、 获得的结果可能有多个,取最后一个值 tail -n1 。

4、这3步都用 | 管道符连接,其作用是将当前的结果作为下一条命令的输入,连续处理以达到获取参数的最终目的。

#!/bin/bash

while true

do

echo -n "please enter the number:"

read line

sleep 1

echo "$line"

done

"${a}" = "^[OP"

^[OP 是先按 Ctrl +v 在按F1 得到的

>

以上就是关于如何通过shell循环获取指定文件的某个值全部的内容,包括:如何通过shell循环获取指定文件的某个值、shell 如何获取一条命令的输出结果、shell 脚本参数解析之 getopt getopts等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9318953.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-27
下一篇2023-04-27

发表评论

登录后才能评论

评论列表(0条)

    保存