再谈 $* 和 $@ 在 Bash 中的表现】的更多相关文章

除非特别说明,本文中出现的 Shell 均指 Bash 4.3.首先说一个基础知识:Shell 中的变量在展开成值(Parameter Expansion)之后,这个值在某些上下文(Context)中,还会进行分词操作(Word Splitting),但在另外一些上下文中,不会进行分词操作.本文中把会进行分词操作的上下文叫做列表上下文(List Context),把不会进行分词的上下文叫做标量上下文(Scalar Context).还有一个基础知识再提一嘴,就是 Shell 在分词时会跳过那些被…
目录 1.双单引号 2.双引号 3.$符号 4.反引号 5.$()符号 6.#符号 7.\符号 1.双单引号 '':单引号.在单引号中所有的特殊符号,如$和"`"(反引号)都没有特殊含义. 2.双引号 "":双引号.在双引号中特殊符号都没有特殊含义,但是$."`"(反引号)和\除外,这三个符号是有特殊含义的,拥有"调用变量的值"."引用命令"和"转义符"的特殊含义. 单引号和双引号的区别…
提示:本篇文章接上一篇文章,主要说说()小括号和{}大括号的区别与使用. 8.()小括号 ():用于一串命令执行时,()中的命令会在子Shell中运行.(和下面大括号一起说明) 9.{}大括号 {}:用于一串命令执行时,{}中的命令会在当前Shell中执行.也可以用于变量变形与替换. (1)父Shell和子Shell 在介绍小括号和大括号的区别之前,我们先要解释一个概念,那就是父Shell和子Shell. 用户登录到Linux系统后,系统将启动一个用户Shell.在这个Shell中,可以使用Sh…
本来不准备写这篇博客的,因为任务管理(job管理)非常非常常用,以至于觉得根本没有必要去写这样一个东西.但想了下,还是记录一下吧,也许有人会用到呢. 不知你是否碰到过这样的情况,当你兴致勃勃的打开VIM,写代码写到正酣时,运营MM或者产品MM气喘吁吁的跑过来:“赶紧帮我跑一下xx的数据,一会做PPT要用”.可是不想直接关闭当前的VIM,而且某些系统下,又不能新开tty(如设置了maxlogins参数)去执行这些任务,这可怎么办?这其实就涉及到了任务(job)管理. 那么什么是任务管理?顾名思义,…
第一种,使用((表达式)): a=3 ((b=a+2)) echo $b 第二种使用let: let "c=$a+4" echo $c 第三种,使用expr表达式(注意空格不能少): #注意空格和反引号 d=`expr 4 + 3` echo $d 第四种,比较常用,就是放在$[ expression]中,其实这才是bash的推荐的标准处理方法 a=4 b=$[$a-9] #b=-5 echo $b 在C风格的for循环中,则可以如下使用: #!/bin/bash for (( a=1…
shell脚本编写:echo $[ 11#8+1] 输出结果是几,为什么,怎么算来的?  摘自:https://zhidao.baidu.com/question/334766451.html   结果为9.$[] 在bash中同$(()),用于算术计算.11#8 是数制转换.举个例子 $[2#1011]最后得出11,#前面是进制数,#号后面是实际数值,通过$[]计算得出10进制的结果.即将2进制数1011转换为10进制数,得出11.再来看 11#8 ,结果为10进制数8.然后跟1相加,最后得…
bash中一个很重要的快捷键,就是向后删除一个单词: ctrl+w=ctrl+W 一个字符一个字符的移动是: ctrl+f, ctrl+b 但是, 一个单词一个单词的移动是: (但是, 这个用得比较少, 感觉不是太好用) esc+B, esc+F 要注意的是, 每次都要 松开esc, 然后再按组合健, 否则,如果一直按住esc的话, 组合建会失效. 注意,是大写的B 和大写的F , 要注意, 这个大写的B 和F 不是通过按 ctrl+shift得到的, 而是要press button "caps…
每个 C 程序都有一个 main 函数,每个 main 函数都有一个 argv 参数,这个参数是一个字符串数组,这个数组的值是由该 C 程序的父进程在通过 exec* 函数启动它时指定的. 很多人说 Bash 中的 $0 的值就是 bash 这个 C 程序在它的 main 函数中获取到的 argv[0](zeroth argument)的值,我们可以通过 exec 命令的 -a 参数的功能演示一下: $  ( exec -a foo bash -c 'echo $0' ) foo $ ( exe…
ORACLE 查询一个数据表后通过遍历再插入另一个表中的两种写法 语法 第一种: 通过使用Oracle语句块  --指定文档所有部门都能查看 declare cursor TABLE_DEPT and STATUS>-; begin for c in TABLE_DEPT loop INSERT INTO G_KNOWDOCRIGHT(RID,DIRID,DOCID,USERID) VALUES(SYS_GUID(),'权限编号','文档编号',c.ID); end loop; commit;…
bash中可以用字符串做数组下标吗例如 test["abc"]=1------解决方案-------------------- 好像是误会,是awk里可以,bash shell里不可以.…
问题描述: $ command 2>> error $ command 1>> output 是否有方法,在bash同一行,实现输出stderr到error文件,输出stdout到output文件? 也就是,如何在bash的同一行,实现stderr和stdout重定向到不同的文件? 解决方法: 将它们放入同一行,command 2>> error 1>> output 然而,注意 >> 是如果文件有数据,会在文件尾部添加内容.而 > 将会重…
bash 中的变量 Linux command line 笔记 变量无需声明,自动创建 var=abc #变量a赋值为字符串abc var="hello world" #字符串里有空格赋值要加引号 var="hello world $var" #任何可以扩展成字符串的都可以赋给变量 var=$(ls -l *.md) # 输出结果为字符串的命令 var=$(5*5) #运算符 var="hello\nworld" #转义字符串序列,例子中的\n…
Bash中的shopt选项 http://blog.chinaunix.net/uid-20587169-id-1919110.html shopt命令用于显示和设置shell中的行为选项,通过这些选项以增强shell易用性.shopt命令若不带任何参数选项,则可以显示所有可以设置的shell操作选项. set选项与shopt选项是两组不同的内容,用set -o和shopt -p可以分别查看两个组所有的打开和关闭的条目, 在默认状态下,有些是打开的,有些是关闭的,shopt各选项随着bash版本…
bash是linux操作系统的shell.以下是Multi-Perspective Sentence Similarity Modeling论文实现时碰到的一个bash: #!/bin/bash python2.7 scripts/download.py glove_dir="data/glove" glove_pre="glove.840B" glove_dim="300d" if [ ! -f $glove_dir/$glove_pre.$g…
#Bash中的位置参数和特殊参数 #Bash中的位置参数是由0以外的一个或多个数字表示的参数.#位置参数是当Shell或Shell函数被引用时由Shell或Shell函数的参数赋值,并且可以使用Bash的内部命令set来重新赋值.位置参数N可以被引用为${N},或当N只含有一个数字时被引用为$N # $ set 1 2 3 four five six 7 8 9 ten# $ echo "$1 $2 $3 $4 $5 $6 $7 $8 $9 ${10}"# 1 2 3 four fiv…
Bash中的变量1.用户定义的变量变量的定义  用户定义的变量有字母数字及下划线组成,并且变量名的第一个字符不能为数字.            与其它UNIX名字一样,变量名是大小写敏感的. 对于变量,用户可按如下方式赋值:               name = value 变量的引用              在引用变量时,需在前面加$符号,用户也可以在变量间进行相互赋值(一个变量的值赋给另一个变量),如:               (前面的$是命令提示符)              …
Bash只支持整数运算,不支持浮点运算.如果需要进行浮点运算,需要使用bc程序.Bash中的数学扩展有两种形式:$[ expression ]或$(( expression )) 例子:$echo $[5+4-2]7 $echo $[ 5*(6-2) ]20 var1=100var2=50var3=45var4=$((var1*(var2-var3))) #注意:圆括号里不需要加$了,和数学运算一样,推荐用这种方式$echo $var4 也可以使用程序/usr/bin/expr来进行整数运算$e…
前言:在bash中遇到各种括号,同时在进行字符数值比较判定时,总是不断出现问题,于是通过参考<advanced bash-scripting guide>,同时在centos 6.7版本上进行测试,现况总结如下.如有纰漏,望指正. 一.() 一个命令组合,相当于一个命令组 [root@mghuee~chunlanyy testdir]# I=;(I=xyz;echo $I;);echo $I xyz 二.{} 同"{}",也为一个命令组合,与"()"的区…
转自: http://blog.csdn.net/u013961718 https://www.shiyanlou.com/courses/running test 和 [ ] test是一条内置命令, test 根据表达式expr 求值的结果返回 0(真)或 1(假),可以用echo $?查看返回的退出状态.[等价于test,即test expr 和 [ expr ] 是等价的. test的三个基本作用是判断文件.判断字符串.判断整数.test中可用的比较运算符只有==和!=,两者都是用于字符…
Windows下Git Bash中VIM打开文件中文乱码,解决方法是: 步骤一 admin@DESKTOP-O99620V MINGW64 /d/项目GGE/Hard_for_GGE (master) $ cd /etc/ admin@DESKTOP-O99620V MINGW64 /etc $ vi vimrc 步骤二 在打开的vimrc文件开头添加以下代码: set nu set fencs=utf-,gbk,utf-,utf-,ucs-bom 保存并退出vimrc编辑文档. 步骤三 1.退…
参考 <Prompt Magic> ubuntu初始时bash提示符的颜色同程序输出的颜色相同,当大量有输出时,找到输出信息开始的地方往往很费劲.如果把提示符的颜色变成更为醒目的颜色,那么就很容易定位输出信息开始处.bash中想要改变提示符颜色可以通过PS1变量的值来设置,如果将其放入用户对应目录下的.bashrc文件中,则用户打开bash时自动更改颜色.这里,我将提示符改成绿色:    PS1="\[\e[32m\]\u@\h:\w\$ \[\e[0m]"这里,\e[与m…
1.首先,bash中0,1,2三个数字分别代表STDIN_FILENO.STDOUT_FILENO.STDERR_FILENO,即标准输入(一般是键盘),标准输出(一般是显示屏,准确的说是用户终端控制台),标准错误(出错信息输出). 2.输入输出可以重定向,所谓重定向输入就是在命令中指定具体的输入来源,譬如 cat < test.c 将test.c重定向为cat命令的输入源.输出重定向是指定具体的输出目标以替换默认的标准输出,譬如ls > 1.txt将ls的结果从标准输出重定向为1.txt文本…
沉淀再出发:关于java中的AQS理解 一.前言 在java中有很多锁结构都继承自AQS(AbstractQueuedSynchronizer)这个抽象类如果我们仔细了解可以发现AQS的作用是非常大的,但是AQS的底层其实也是使用了大量的CAS,因此我们可以看到CAS的重要性了,但是CAS也是有缺陷的,但是在大部分使用的情况下,我们往往忽略了这种缺陷. 二.AQS的认识 2.1.AQS的基本概念 AQS(AbstractQueuedSynchronizer)就是抽象的队列式的同步器,AQS定义了…
    Bash中的变量没有数据类型的定义,这样,在处理字符串和数值时会带来麻烦.例如,使用-eq比较数值,==比较字符串等.另外,Bash中常用的let.expr仅支持整数运算,不支持浮点数计算.要实现浮点数计算,可以使用bc或awk.   bc 可以命令行方式,或者管道方式使用bc     awk    …
空格,一个看不见的字符,很不起眼,很多人经常忽略它,导致代码出错,却还找不着北. 先了解下bash中什么时候该用空格,什么时候不该用. . 等号赋值两边不能有空格 . 命令与选项之间需要空格 . 管道两边空格可有可无 1.在[ ] 内部,如果只有一个值(那些因为缺少了空格而连一起的也算),不是空字符串就为真.所以在[ ] 之间的参数,也要两边有空格,而不能堆一起. [root@noi ~]# ];then echo "equal";fi equal [root@noi ~]# ' ];…
我们用的Memcached缓存服务是阿里云OCS,今天晚上遇到了一次OCS挂掉的情况(计划中的升级),看一下性能监视器中的表现,也许对分析黑色1秒问题有帮助. 应用日志中错误: 2014-06-05 20:44:55,747 [ERROR] Enyim.Caching.Memcached.MemcachedNode System.IO.IOException: 无法从传输连接中读取数据: 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败.. ---> System.Net.S…
bash中的算术运算     +, -, *, /, %     实现算术运算:         (1) let var=算术表达式          (2) var=$[算术表达式]          (3) var=$((算术表达式))                 let aa=1+2         或者aa=$[1+2]         或者aa=$((1+2))         echo aa             输出为3         aa=$[$aa+3]        …
vs2010 C# 如何将类做成DLL 再从另一个项目中使用这个类 2011-10-20 12:00 486人阅读 评论(0) 收藏 举报 一.将类做成DLL 方法一: 你可以通过在命令行下用命令将以 xxx.cs的文件直接生成为DLL文件 方法二:通过visual studio2010 新建立一个项目,选择为“类库”,然后在这里可以写用户自己的类. 二.引用DLL 在项目中,打开“解决方案资源管理器”,右键“引用”-->“添加引用”-->“浏览” 然后从主机的目录中找到DLL 之后在你的项目…
// // Person.h #import <Foundation/Foundation.h> @interface Person : NSObject @property int age; @property NSString *name; /* 自定义构造方法: 其实就是自定义一个init方法 1.一定是对象方法 2.一定返回id/instancetype 3.方法名称一定以init开头 */ - (instancetype)initWithAge:(int)age; //- (inst…
函数声明创建的函数在现代浏览器,在if语句中函数的声明不会提升,但是在老的IE版本中,if语句中的函数声明会提升 函数表达式在不同浏览器中函数声明都不会被提升,解决了不同浏览器的兼容性问题 关于函数提升在if判断中的表现 <script> // 根据条件声明函数 // 现代浏览器 不会提升if语句中的函数声明 // 在老的IE版本中,if语句中的函数声明也会提升 if (true) { function fn() { console.log('fn - true'); } } else { f…