
#!/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等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)