
shell中获取参数可以直接使用$1、$2等形式来获取,但这种方式有明显的限制: 每个参数的位置是固定的。 比如如果在设计上 $1是ip地址$2是端口,那在执行时就必须第一个参数是ip第二个参数是端口而不能反过来。
shell提供了getopt和getopts来解析参数, getopt比getopts功能强一些getopts比getopt简单一些; 总体而言getopt和getopts都差强人意。
getopt比getopts强一些复杂一些:能在命令行中单独使用、支持长选项格式、支持选项值可选。更多说明见注释。
执行结果:
参考:
>
楼上说的貌似没错,我没去执行看具体报什么错。
用awk是可以的,你需要用-F指定分隔符,然后再输出第几个串,楼上用的双引号作为分隔符,然后输出第四个串,应该是没问题的。
或者你也可以用其他语言,比如php,json_decode函数将这个穿转成数组,然后输入code的值,更加直观。
看下你使用的bash版本到没到40,使用指令bash --version查看
使用变量前先确认该变量是否在之前已经被定义过了 使用source 命令或 命令启动脚本时是不会开辟新线程的所以你在bash窗口里定义的没加local 变量 都会被脚本继承 此时你可以先删除这个变量 即定义phone 时 unset phone
您好,要获取唯一流水号,可以使用shell脚本来实现。首先,您可以使用date命令来获取当前时间,然后使用awk命令来提取其中的年月日,再使用rand命令来生成随机数,最后将年月日和随机数拼接起来,就可以获得一个唯一的流水号了。此外,您还可以使用UUID来生成唯一的流水号,UUID是一种128位的全局唯一标识符,可以保证每个标识符的唯一性。使用UUID来生成唯一的流水号只需要在shell脚本中调用uuidgen命令即可。
请参考下面这个方法:
备注:getDbUserByTableName $TableName是获取表在哪个数据库的。你可以直接把$DbUSER换成tns串或者别名即可。
#sqlplus连接数据库的方法#需要传入两个参数,第一个是表名,一个是需要执行的sql语句,一条语句作为一行
sqlBossDb(){
TableName=$1
SqlStr=$2
getDbUserByTableName $TableName
DbUSER=`cat dbusertemp`
Note_Log "$DbUSER连接数据库,执行语句$SqlStr"
eval echo \${$DbUSER} >aaatemp #查询出来是sqlDbUsercfg中DBUSERNAME项,需要换成DBUSERSTR项
DbUSER=`cat aaatemp`
#Note_Log "开始 $DbUSER"
sqlplus $DbUSER <<!
set linesize 1000
$SqlStr
commit;
quit
!
e
定义键值对pomproperties如下:
很多时候我们定义key的时候会想下面一样进行 分组 ,此时使用上面的所使用的 进行加载键值对shell就会报错,那么我们可以使用 grep 命令进行解决:
定义键值对pomproperties如下:
写成一个函数,将所需的key传入即可,最后也须将 \r 去除
参考链接
以上就是关于shell 脚本参数解析之 getopt getopts全部的内容,包括:shell 脚本参数解析之 getopt getopts、Shell脚本常用命令、shell脚本如何获取状态码返回值,如ok或error等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)