Bash Shell中的特殊位置变量及其应用 众所周知bash shell中有许多特殊的位置变量,灵活使用它们可以更好地发挥Shell脚本的功用. 即位置变量:$1,$2,...来表示,用于让脚本在脚本代码中调用通过命令行传递给它的参数 特殊变量:$?, $0,$*,$@,$#, $$ ---------------- 具体解析 ----------------------------- $? : 用于检测上一条命令的返回码,0代表成功,1-255表示失败 $0 :  表示命令本身 $*  : …
bash shell中测试命令 test命令提供了if-than语句中测试不同条件的途径.如果test命令中列出的条件成立,test命令就会退出并返回退出状态吗0 .这样if-than语句就与其他编程语言中的if-than语句类似的方式工作了.如果条件不成立,test命令就会退出并返回非零的退出状态码,使得if-than语句不会被执行. 1    test 命令的基本格式     test        condition         condition是test命令要测试的一系列参数和值.…
http://hi.baidu.com/lolorosa/blog/item/5775a608bd670d33b0351da7.html $# 是传给脚本的参数个数 $@ 是传给脚本的所有参数的列表 $0 是脚本本身的名字 $1是传递给该shell脚本的第一个参数 $2是传递给该shell脚本的第二个参数 在Bash shell中经常会见到一些比较特殊的符号,本人现收集与此,以供查阅:位置参数:详见ABS(Advanced Bash Shell)中文翻译版103页第9章第一节内部变量,当然英文版…
这篇文章主要介绍了Bash Shell中Shift的使用方法,需要的朋友可以参考下 shift可以用来向左移动位置参数.Shell的名字 $0第一个参数 $1第二个参数 $2第n个参数 $n所有参数 $@ 或 $*参数个数 $# shift默认是shift 1例: #----------------------------输出文字-开始---------------------------- #!/bin/bash #Filename: shift.sh #by www.jbxue.com un…
本文介绍下,在bash shell编程中,有关case语句的一个例子,学习下case语句的用法,有需要的朋友参考下. 本文转自:http://www.jbxue.com/article/13377.html bash case语句的例子. 分享一段bash shell代码,对于学习bash的同学理解case语句的用法,会有帮助. 例子: 复制代码代码如下: #!/bin/bash ## www.jbxue.com # Program: # File operation # 1.) Open fi…
原文网址:http://www.cnblogs.com/FrankTan/archive/2010/03/01/1634516.html 0.引言 写程序的时候经常要处理命令行参数,本文描述在Bash下的命令行处理方式. 选项与参数: 如下一个命令行: ./test.sh -f config.conf -v --prefix=/home 我们称-f为选项,它需要一个参数,即config.conf, -v 也是一个选项,但它不需要参数. --prefix我们称之为一个长选项,即选项本身多于一个字符…
0.引言 写程序的时候经常要处理命令行参数,本文描述在Bash下的命令行处理方式. 选项与参数: 如下一个命令行: ./test.sh -f config.conf -v --prefix=/home 我们称-f为选项,它需要一个参数,即config.conf, -v 也是一个选项,但它不需要参数. --prefix我们称之为一个长选项,即选项本身多于一个字符,它也需要一个参数,用等号连接,当然等号不是必须的,/home可以直接写在--prefix后面,即--prefix/home,更多的限制后…
当没有任何捕获时,一个交互式 Bash Shell 会忽略 SIGTERM(发送到进程的 TERM 信号用于要求进程终止) 和 SIGQUIT(当用户要求进程执行 core dump 时,QUIT 信号由进程的控制终端发送到进程) 信号.由 Bash 运行的非内部命令会使用 Shell 从其父进程继承的信号处理程序.如果没有启用作业控制,异步执行的命令会忽略除了有这些信号处理程序之外的 SIGINT 和 SIGQUIT 信号.由于命令替换而运行的命令会忽略键盘产生的作业控制信号SIGTTIN(后…
Conditional Logic on Files # 判断文件是否存在及文件类型 -a file exists. #文件存在 -b file exists and is a block special file. #文件存在,并且是块设备 -c file exists and is a character special file. ##文件存在,并且是字符设备 -d file exists and is a directory. #文件存在,并且是目录 -e file exists (ju…
http://blog.51cto.com/lovelace/1211353 bash中如何实现条件判断?条件测试类型:    整数测试    字符测试    文件测试 一.条件测试的表达式:    [ expression ]  括号两端必须要有空格    [[ expression ]] 括号两端必须要有空格    test expression    组合测试条件:     -a: and     -o: or      !: 非 二.整数比较:    -eq 测试两个整数是否相等    …
一.单引号和双引号 首先,单引号和双引号,都是为了解决中间有空格的问题. 因为空格在Linux中时作为一个很典型的分隔符,比如string1=this is astring,这样执行就会报错.为了避免这个问题,因此就产生了单引号和双引号.他们的区别在于,单引号将剥夺其中的所有字符的特殊含义,而双引号中的'$'(参数替换)和'`'(命令替换)是例外.所以,两者基本上没有什么区别,除非在内容中遇到了参数替换符$和命令替换符`. 所以下面的结果:num=3echo ‘$num’$numecho “$n…
https://jingyan.baidu.com/article/b907e6278fbd8946e7891c17.html ============================================================ linux下和windows下的任务控制不一样, windows一般使用任务管理器进行管理 而linux下可以通过一系列的任务命令来控制, 主要包含: bg,fg,jobs,kill,wait,disown,suspend. 下面就对这些命令进行简单…
getfattr用法 用于获取文件扩展属性,返回一系列键值对,参考Linux Man Page. 常用OPTIONS -n name, --name=name Dump the value of the named extended attribute extended attribute. -d, --dump Dump the values of all extended attributes associated with pathname. -e en, --encoding=en En…
1 ${BASH_SOURCE-$0} 表示当前正在执行的脚本的完整路径. 2 cd -P 以物理路径进入 /usr/localhadoop现在链到/home/houzhizhen/usr/local/Hadoop/hadoop-2.72目录. cd -P /usr/local/hadoop pwd 输出/home/houzhizhen/usr/local/hadoop/hadoop-2.72 3 pwd -P 目录是链接目录时,pwd -P  显示出实际路径,而非使用连接(link)路径:pw…
linux 命令'hash'管理着一个内置的哈希表,记录了已执行过的命令的完整路径,用该命令可以打印出你所使用过的命令以及执行的次数. [root@localhost ~]# hashhits command2 /bin/ls2 /bin/su…
在bash shell中,source.exec以及sh都可以用来执行shell script,但是它们的差别在哪里呢? sh:父进程会fork一个子进程,shell script在子进程中执行 source:在原进程中执行,不会fork子进程 exec:在原进程中执行,但是同时会终止原进程 注:使用export会把父进程中的变量向子进程中继承,但是反过来却不行,在子进程中,不管环境如果改变,均不会影响父进程…
http://blog.chinaunix.net/uid-14351756-id-2820651.html $( ) 与 ` ` (反引号)在 bash shell 中,$( ) 与 ` ` (反引号) 都是用来做命令替换用(command substitution)的. 所谓的命令替换与我们第五章学过的变量替换差不多,都是用来重组命令行:* 完成引号里的命令行,然后将其结果替换出来,再重组命令行.例如:[code]$ echo the last sunday is $(date -d "la…
生活在 Bash shell 中,熟记以下快捷键,将极大的提高你的命令行操作效率. 编辑命令 Ctrl + a :移到命令行首 Ctrl + e :移到命令行尾 Ctrl + f :按字符前移(右向) Ctrl + b :按字符后移(左向) Alt + f :按单词前移(右向) Alt + b :按单词后移(左向) Ctrl + xx:在命令行首和光标之间移动 Ctrl + u :从光标处删除至命令行首 Ctrl + k :从光标处删除至命令行尾 Ctrl + w :从光标处删除至字首 Alt…
这本书买了好久了,除了刚到手的那几天翻看了一下以外,竟然到今天都没有看过.突然想要写一个shell脚本,发现什么也不会,是时候开始学习了,今天先把最简单的一章再看一遍顺便做一些笔记,明天继续后面的! man命令用来访问存储在Linux系统上的手册页面.在想要查找的工具的名称前面输入man命令,就可以找到那个工具相应的手册条目. 如果你是新接触bash shell,可能一开始会觉得手册页并不太有用.但是,如果养成了阅读手册的习惯,尤其是阅读第一段或是DESCRIPTION部分的前两段,最终你会学到…
习题3.2的要求是不使用fcntl()而编写一个同dup2()功能相同的函数.直觉上是不断使用dup()直到返回指定的文件描述符. #include <stdio.h>#include <stdlib.h>#define OPEN_MAX 63 int my_dup2(int filedes,int filedes2); intmain(int argc, char* argv[]){  int fd,fd2;  char buf[] = "It work!\n"…
在Linux bash shell中,语句中的分号一般用作代码块标识 1.单行语句一般要用到分号来区分代码块.比如: weblogic@pmtest:/$if [ "$PS1" ]; then echo test is ok; fi test is ok 该脚本或命令行中,须要两个分号才为正确的语句,第一个分号是then 前的分号,用于标识条件块结束.第二个分号在fi前,用于标识then块结束,假设缺少这两个分号,则程序运行错误. 这里有趣的是echo后的字符串不须要使用引號也能正确地…
http://linuxtoy.org/archives/bash-shortcuts.html 生活在 Bash shell 中,熟记以下快捷键,将极大的提高你的命令行操作效率. 编辑命令 Ctrl + a :移到命令行首 Ctrl + e :移到命令行尾 Ctrl + f :按字符前移(右向) Ctrl + b :按字符后移(左向) Alt + f :按单词前移(右向) Alt + b :按单词后移(左向) Ctrl + xx:在命令行首和光标之间移动 Ctrl + u :从光标处删除至命令…
转载自:百度经验 Windwos 10 的周年更新为开发人员提供一个大的新功能:一个完整的,基于Ubuntu的Bash shell中,可以直接在Windows上运行Linux软件. 这使得“Linux子系统用于Windows 10成为可能.   方法/步骤   确保您使用至少是Windows 10的14316版本. 这种方法只适用于64位版本的Windows 10. 打开设置应用程序和头部更新和安全>对于开发. 在这里启动“开发者模式”开关,使开发者模式. 接下来,打开控制面板,单击“程序”,然…
一.基本的bash shell命令 1.默认bash shell 提示符是美元符号($); 2.bash手册 使用man命令来访问存储在Linux系统上的手册页面,如: bogon:~ Mac$ man kill KILL(1)                   BSD General Commands Manual                  KILL(1) NAME kill -- terminate or signal a process SYNOPSIS kill [-s sig…
转载自 https://blog.csdn.net/x1269778817/article/details/46535729 参考: https://stackoverflow.com/questions/669452/is-double-square-brackets-preferable-over-single-square-brackets-in-ba https://unix.stackexchange.com/questions/68694/when-is-double-quoting…
原文 http://blog.zol.com.cn/2322/article_2321763.html $( ) 与 ` ` (反引号)在 bash shell 中,$( ) 与 ` ` (反引号) 都是用来做命令替换用(command substitution)的. 所谓的命令替换与我们第五章学过的变量替换差不多,都是用来重组命令行:* 完成引号里的命令行,然后将其结果替换出来,再重组命令行.例如:[code]$ echo the last sunday is $(date -d "last…
$( ) 与 ` ` (反引号)在 bash shell 中,$( ) 与 ` ` (反引号) 都是用来做命令替换用(command substitution)的. 所谓的命令替换与我们第五章学过的变量替换差不多,都是用来重组命令行:* 完成引号里的命令行,然后将其结果替换出来,再重组命令行.例如:[code]$ echo the last sunday is $(date -d "last sunday" +%Y-%m-%d)[/code]如此便可方便得到上一星期天的日期了… ^_^…
shell中各种括号的作用().(()).[].[[]].{} 原文:http://www.jb51.net/article/60326.htm http://blog.csdn.net/good_habits/article/details/27708745. http://blog.csdn.net/taiyang1987912/article/details/39551385 在这里我想说的是几种shell里的小括号,大括号结构和有括号的变量,命令的用法,如下: 1.${var} 2.$(…
二十三. Bash Shell编程:     1.  读取用户变量:     read命令是用于从终端或者文件中读取输入的内建命令,read命令读取整行输入,每行末尾的换行符不被读入.在read命令后面,如果没有指定变量名,读取的数据将被自动赋值给特定的变量REPLY.下面的列表给出了read命令的常用方式: 命令格式 描述 read answer 从标准输入读取输入并赋值给变量answer. read first last 从标准输入读取输入到第一个空格或者回车,将输入的第一个单词放到变量fi…
二十二. 交互式使用Bash Shell:     1.  用set命令设置bash的选项:     下面为set主要选项的列表及其表述: 选项名 开关缩写 描述 allexport -a 打开此开关,所有变量都自动输出给子Shell. noclobber -C 防止重定向时文件被覆盖. noglob -d 在路径和文件名中,关闭通配符. #打开该选项     /> set -o allexport   #等同于set -a     #关闭该选项     /> set +o allexport…