猿问
回到首页
个人中心
反馈问题
注册登录
下载APP
首页
课程
实战
体系课
手记
专栏
慕课教程
我自己写的Shell脚本,也想通过这种方式传参,怎么处理呢?
Linux的参数好多都是可以通过参数名空格参数值这种方式传参的,比如
find . -name *.php
貌似Shell不提供这种方式,只能通过 $数字 的方式
慕哥9229398
浏览 148
回答 2
2回答
萧十郎
你可以自行解析$@参数实现解析。但是实际情况比这复杂。比如说,如果我需要一个-name test的带参数选项,直接遍历$@的代码就很复杂了。正常一点的解决方案是用bash的built-in getopts或者命令getopt(注意这俩名字不一样)。我把里面的样例代码贴这里。你可以将这部分代码保存成脚本然后执行之测试效果# getopts :s:h表示这个命令接受2个带参数选项,分别是-h和-swhile getopts :s:h optdo case $opt in s) echo "-s=$OPTARG" ;; :) echo "-$OPTARG needs an argument" ;; h) echo "-h is set" ;; *) echo "-$opt not recognized" ;; esacdone
0
0
0
DIEA
可以遍历一下你获取到的参数列表$@,具体里面怎么写就看你,比如最简单的:#!/bin/bashfunction getName() { found=0; for item in $@ ; do if [[ $found == 1 ]]; then echo $item; found=0; break; fi if [[ "$item" == "-name" ]]; then found=1; fi done} getName $@
0
0
0
打开App,查看更多内容
随时随地看视频
慕课网APP
相关问题
centos7里没有locate命令,请问在哪里有centos6.5的镜像文件?
2 回答
相关分类
Linux
linux
2 回答
centos7里没有locate命令,请问在哪里有centos6.5的镜像文件?
2 回答
继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续