bash命令行中带通配符参数何时展开??

在bash中执行的命令,有些参数经常会带个通配符的,但是你知道这个参数是何时展开的吗?

先来看下简单的bash小代码:

[zcm@debug #88]$cat del.sh 
#!/bin/bash
if [ $# -lt 2 ]; then
echo "Usage: $0 <separator> <files>"
exit 1
fi
echo $1
echo $2
echo $3

 

再来看执行过程:

[zcm@debug #89]$./del.sh *.txt
a.txt
b.txt
c.txt
[zcm@debug #90]$./del.sh "*.txt"
Usage: ./del.sh <separator> <files>
[zcm@debug #91]$ls aad/
a.txt  b.txt  c.txt
[zcm@debug #92]$./del.sh aad/*.txt
aad/a.txt
aad/b.txt
aad/c.txt
[zcm@debug #93]$./del.sh "aad/*.txt"
Usage: ./del.sh <separator> <files>
[zcm@debug #94]$

 

看出区别了吗:输入参数中 *.txt 有一个带了双引号,一个没带,运行结果就不一样了。

结论:带双引号的*.txt在命令行中是当作一个整体传入的,但是不带双引号的*.txt在传给bash解释器之前就已经被替换为它的结果(即:a.txt b.txt c.txt)。

所以,带双引号的*.txt在运行时出错,提示参数个数不足,而另一个却因为输入参数个数充足,而没有提示出错!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/407037.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

CSS之Multi-columns的column-gap和column-rule

column-gap就相当于两列之间的空白处&#xff0c;而column-rule就相当于一条分隔线&#xff0c;换句话说呢&#xff1f;column-gap就像我们web页面中的margin一样&#xff0c;而column-rule就类似于border&#xff0c;不过他们只是存在相邻两列之间 另外column-gap和column-ru…

Redis多机功能介绍

Redis多机功能目的&#xff1a;以单台Redis服务器过渡到多台Redis服务器 Redis单机在生产环境中存在的问题 1、内存容量不足 Redis使用内存来存书数据库中的数据&#xff0c;但是对于一台机器来说&#xff0c;硬件的内存容量是有限的&#xff0c;当我们需要存储的数据量超过机器…

Taro+react开发(43)重新渲染置空

changeTab type > {this.setState({curType: type,pageIndex: 1,getStauList: []},() > {this.getStatusList();});};

C#设计模式

C#设计模式 (1) .NET设计模式系列文章 作者&#xff1a;TerryLee 出处&#xff1a;http://terrylee.cnblogs.com/ (2) 设计模式 作者&#xff1a;吕震宇出处&#xff1a;http://www.cnblogs.com/zhenyulu/ (3) Design & Pattern 作者&#xff1a;张逸:晴窗笔记 - (张逸)…

watch命令

watch是一个非常实用的命令&#xff0c;基本所有的Linux发行版都带有这个小工具&#xff0c;如同名字一样&#xff0c;watch可以帮你监测一个命令的运行结果&#xff0c;省得你一遍遍的手动运行。在Linux下&#xff0c;watch是周期性的执行下个程序&#xff0c;并全屏显示执行结…

CSS之Multi-columns的跨列

column-span主要用来定义一个分列元素中的子元素能跨列多少列。前面大家都知道column-width&#xff0c;column-count等属性让一元素分成多列&#xff0c;不管里面元素如何排放顺序&#xff0c;他们都是从左向右的放置内容&#xff0c;但有时我们需要基中一段内容或一个标题不进…

详解Microsoft Office Communication Server (OCS) 2007 标准版部署(上)

详解Microsoft Office Communication Server (OCS) 2007 标准版部署&#xff08;上&#xff09;前几篇博文中介绍了LCS今天我们来部署ocs&#xff0c;它是lcs的升级版&#xff0c;功能比lcs多个很多&#xff0c;可以视频&#xff0c;多人会议&#xff0c;等多项功能。但是安装起…

awk按分隔符的不同取出不同的列

看下bash代码&#xff1a; #!/bin/bash# get "orderno" and "order_money" from datafile of thisside or otherside, save the result to file xxx.bak# 把金额的单位全部化为&#xff1a;元function get_orderNo_orderMoney(){if [ $1 "|" ];…

Taro+react开发(45)taro中组件生命周期

组件生命周期# 每一个组件都有几个你可以重写以让代码在处理环节的特定时期运行的“生命周期方法”。方法中带有前缀 will 的在特定环节之前被调用&#xff0c;而带有前缀 did 的方法则会在特定环节之后被调用。装载(Mounting)# 这些方法会在组件实例被创建和插入 DOM 中时被调…

Linux命令 - watch

watch命令 功能 execute a program periodically, showing output fullscreen 周期性执行命令并全屏显示结果安装 brew install watch (mac os) 用法 watch command - 基础用法 $ watch date "%Y-%m-%dT%H:%M:%S[%Z]" Every 2.0s: date "%Y-%m-%dT%H:%M:%…

CSS之浮动(一)

1. 浮动出现的意义其实只是用来让文字环绕图片而已&#xff0c;仅此而已。而我们目前用浮动实现页面布局本不是浮动该干的事情 2. 浮动的包裹性 撇开浮动的“破坏性”&#xff0c;浮动就是个带有方位的display:inline-block属性 display:inline-block某种意义上的作用就是包…

一个怎样得到treeView值的小例子

阅读全文&#xff1a;http://www.cckan.net/forum.php?modviewthread&tid40 private void treeViewMenu_MouseDown(object sender, MouseEventArgs e) { if (e.Button MouseButtons.Right) { Point ClickPoint new Poi…

jquery miniui , 普加甘特图,流程管理

http://www.miniui.com/docs/quickstart/index.html 普加 甘特图 流程管理 http://www.plusgantt.com/project/demo/Project.html转载于:https://www.cnblogs.com/qq-757617012/p/4021130.html

Taro+react开发(46)taro中环境判断

环境判断 Taro.ENV_TYPE# ENV_TYPE.WEAPP 微信小程序环境ENV_TYPE.SWAN 百度小程序环境ENV_TYPE.ALIPAY 支付宝小程序环境ENV_TYPE.TT 字节跳动小程序环境ENV_TYPE.WEB WEB(H5)环境ENV_TYPE.RN ReactNative 环境ENV_TYPE.QUICKAPP 快应用环境ENV_TYPE.QQ QQ小程序 环境ENV_TYPE…

Linux shell重复执行某命令n次

方法一 for i in {1..10}; do echo "Hello"; done方法二 在~/.bashrc文件中创建一个run函数&#xff08;函数名字随意&#xff09;&#xff1a; function my_repeat() {number$1shiftfor n in $(seq $number); do$done }使./bashrc生效 souce ~/./bashrc示例 run…

CSS之浮动(二)

1. 浮动的非本职工作 我们只要静下心来好好想想浮动的本质&#xff0c;实现的原理&#xff0c;就可以知道为什么浮动本不应该用来对页面进行布局。还记得上一部分所说的浮动的本质吗&#xff1f;即“包裹与破坏”。我们可以用这个&#xff08;“包裹与破坏”&#xff09;解释为…

centos配置ftp

centos配置ftp 1、终端命令&#xff1a;yum -y install vsftpd,这样将会自动在网上down and setup vsftpd。 2、创建ftp用户组及用户: $ groupadd ftpgroup $ useradd ftpuser -g ftpgroup -d /webroot/myftpdir -m $ passwd ftpuser 码密 /webroot/myftpdir是ftp用户访问的文件…

iOS8中提示框的使用UIAlertController(UIAlertView和UIActionSheet二合一)

本文转载至 http://blog.csdn.net/liuwuguigui/article/details/39494597IOS8UIAlertViewUIActionSheetiOS8推出了几个新的“controller”&#xff0c;主要是把类似之前的UIAlertView变成了UIAlertController&#xff0c;这不经意的改变&#xff0c;貌似把我之前理解的“contro…

嵌入式学习路线

ARMLINUX路线&#xff0c;主攻嵌入式Linux操作系统及其上应用软件开发目标&#xff1a; &#xff08;1&#xff09;掌握主流嵌入式微处理器的结构与原理&#xff08;初步定为arm9&#xff09; &#xff08;2&#xff09;必须掌握一个嵌入式操作系统&#xff08;初步定为uclinux…

Taro+react开发(47)taro中消息机制

import Taro, { Events } from tarojs/taroconst events new Events()// 监听一个事件&#xff0c;接受参数 events.on(eventName, (arg) > {// doSth })// 监听同个事件&#xff0c;同时绑定多个 handler events.on(eventName, handler1) events.on(eventName, handler2) …