`
jayghost
  • 浏览: 430603 次
  • 性别: Icon_minigender_1
  • 来自: 成都
社区版块
存档分类
最新评论

shell 编程中的特殊符号

 
阅读更多

一、井号 # 
1、在脚本文件中对一行进行注释。 
2、在引号和\符号后不是注释,只是#号本身: 
echo "12 # hehe" 
echo '12 # hehe' 
echo 12 \# hehe 
3、参数替代 
echo $(PATH#*:) 
4、进制数转换 
echo $((16#a));将十六进制数a转换为十进制数表示出来 
echo $((5#3));将5进制数3转换为十进制数表示出来 
5、模式匹配 
echo ${#string};获得变量string所含字符的个数,如果string是个数组,则获得数组第一个元素所含字符个数。 


二、分号 ; 
1、分割符,在同一行中用分号可以隔开两个命令: 
ls;cat hello 
2、在引号和\符号后不是分割符,只是;号本身。 


三、;; 
1、两个分号,作为case选项的终结符: 
case "$variable" in 
abc) echo "$variable = abc" ;; 
xyz) echo "$variable = xyz" ;; 
esac 


四、句号 . 
1、点开头的文件是隐藏文件,要用ls -a才能看到。 
2、一个点指代当前目录,两个点指代上级目录。 


五、引号 
1、双引号 "" 
双引号中的大多数字母或符号都代表它本身 
2、单引号 ” 
单引号中的所有字母或符号都代表它本身 


六、逗号 , 
逗号用于分开多个算术表达式,对每个表达式都进行计算,但仅仅返回最后一个表达式的值。 
let "t = (a = 9,5+3)"#该表达式中,对a赋值为9,计算出来t为8 


七、反斜杠 \ 
\号表示后面的符号仅仅代表该符号本身,但只有一位有效。比如 
\a就和'a'一个效果 


八、正斜杠 / 
1、文件名分割符,如 
/usr/locale/share/ 

2、除法符号 


九、反引号 ` 
命令取代? 


十、冒号 : 
1、空命令,返回值为0,和true命令一样,可以在做无限循环的条件。 
2、提醒后面有一个二进制命令需要执行 
: ${username = `whoami`}#如果没有:则该行会出错 
3、参数取代? 
: ${HOSTNAME?} 

4、与>重定向符号一起创建一个文件(如果没有),或者截断一个文件(该文件已存在),该文件的长度为0 
: > data.exe 和cat /dev/null > data.exe效果相同 
5、与>>重定向符号一起更新一个文件的访问及修改时间,如果没有该文件,则创建之。和touch功效相同 
注意,4、5两条都仅对规则文件起作用,对管道,软连接以及一些特殊文件都没有用 
6、域分割符 
如$PATH变量中间的冒号 


十一、感叹号 ! 
1、非号,把退出状态变成由0变成1,由等于变成不等 = ,!= 
2、间接变量参考? 
3、两个感叹号表示上一个命令 !! 


十二、星号 * 
1、通配符,可以在正则表达式中代替任何字符或者数字 
2、乘号 
3、两个星号表示指数 ** 


十三、问号 ? 
1、测试符号,用于条件测试? 
2、通配符,可以在正则表达式中代替一个字符或者数字 


十四、$ 
1、变量符号 
2、表示一行的终止 
3、${}变量取代 
4、$1,$2,$3等等,指从命令行向脚本输入的第一个,第二个,第三个参数。$0指脚本本身。 
5、$#,指从命令行向脚本输入的参数个数。 
6、$*,指从命令行向脚本输入的所有参数,但是看成一个词。 
7、$@,指从命令行向脚本输入的所有参数,但是每个参数是根据IFS变量分开的。 
比如:export IFS=':',再echo $PATH,得到的结果是:/usr/local/sbin /usr/sbin /sbin /usr/local/bin /usr/bin /bin /usr/games /usr/lib/apache-ant/bin /usr/lib/java/bin /usr/lib/java/jre/bin /usr/lib/qt/bin /usr/share/texmf/bin 
8、$?,退出状态变量。 
9、$$,进程的ID号码。 


十五、圆括号 () 
1、命令组 
(a = 123;echo $a) 
该命令组写了一个子脚本,子脚本中的变量对子脚本外的一切脚本均不可见。 

2、数组初始化 
array = (element1 element2 element3) 


十六、大括号 {} 
1、括号扩展?比如 
grep linux file*.{txt,htm*} 
在file2.txt,file1.htm,file1.html等文件中查找linux字符串 
2、代码块,作为子函数,不能用于终端中,子函数中的变量对其他脚本还是可见的。 
3、代码块中的函数可以进行输入输出重定向。 

read line1 
read line2 
} < /etc/fstab 

 

shell中$#、$0、$@的含义

$# 是传给脚本(或者函数)的参数个数, $0 是脚本本身的名字, $@ 是传给脚本(或者函数)的所有参数的列表. 举例:

QUOTE:
-(dearvoid@LinuxEden:Forum)-(~/tmp)-
[15889 0] ; cat foo.sh
#!/bin/bash

echo "script name   : $0"
echo "# of arguments: $#"
echo "all arguments : $@"
echo "arguments in order:"
for sArg in "$@"; do
    echo "  $sArg"
done
-(dearvoid@LinuxEden:Forum)-(~/tmp)-
[15889 0] ; ./foo.sh aa bb cc
script name   : ./foo.sh
# of arguments: 3
all arguments : aa bb cc
arguments in order:
  aa
  bb
  cc
-(dearvoid@LinuxEden:Forum)-(~/tmp)-
[15889 0] ; ./foo.sh aa "bb cc" dd
script name   : ./foo.sh
# of arguments: 3
all arguments : aa bb cc dd
arguments in order:
  aa
  bb cc
  dd
-(dearvoid@LinuxEden:Forum)-(~/tmp)-
[15889 0] ; bye
附: 
  $0   这个程式的执行名字       
  $n   这个程式的第n个参数值,n=1..9       
  $*   这个程式的所有参数       
  $#   这个程式的参数个数       
  $$   这个程式的PID       
  $!   执行上一个背景指令的PID       
  $?   执行上一个指令的返回值
分享到:
评论

相关推荐

    shel中特殊符号

    对shell中特殊符号熟知,有利于shell编程应用,此文档几乎涵盖了shell中所有特殊符号的功能介绍和使用方法。

    shell 编程指南pdf

    第四部分 基础shell编程 第16章 shell脚本介绍 151 16.1 使用shell脚本的原因 151 16.2 脚本内容 151 16.3 运行一段脚本 152 16.4 小结 153 第17章 条件测试 154 17.1 测试文件状态 154 17.2 测试时使用逻辑操作符 ...

    Linux运维-3.Shell编程-11shell基础-106shell特殊符号2.avi

    Linux运维-3.Shell编程-11shell基础-106shell特殊符号2.avi

    Linux运维-3.Shell编程-11shell基础-105shell特殊符号1.avi

    Linux运维-3.Shell编程-11shell基础-105shell特殊符号1.avi

    LINUX与UNIX SHELL编程指南(很全)

    第四部分 基础shell编程 第16章 shell脚本介绍 151 16.1 使用shell脚本的原因 151 16.2 脚本内容 151 16.3 运行一段脚本 152 16.4 小结 153 第17章 条件测试 154 17.1 测试文件状态 154 17.2 测试时使用逻辑操作符 ...

    shell编程学习笔记

    变量: 变量的赋值和引用 在shell编程中变量没有类型,简称弱类型编程语言,不需要声明,在引用这个变量时会创建它(在变量名前加$符号引用变量的值)。在定义变量时,若String中包含空格、制表符、换行符,需用单...

    Linux与unix shell编程指南

    本书共分五部分,详细介绍了shell编程技巧,各种UNIX命令及语法,还涉及了UNIX下的文字处理以及少量的系统管理问题。本书内容全面、文字简洁流畅,适合Shell编程人员学习、参考。 目 录 译者序 前言 第一部分 shell ...

    LINUX与UNIX SHELL编程指南 高清PDF

    本书共分五部分,详细介绍了shell编程技巧,各种UNIX命令及语法,还涉及了UNIX下的文字处理以及少量的系统管理问题。本书内容全面、文字简洁流畅,适合Shell编程人员学习、参考。 目 录 译者序 前言 第一部分 shell...

    shell编程基础(linux编程方向)

    • 6 Shell里的一些特殊符号 o 6.1 引号 o 6.2 Here documents • 7 Shell里的函数 • 8 命令行参数 • 9 Shell脚本示例 o 9.1 一般编程步骤 o 9.2 二进制到十进制的转换 o 9.3 文件循环拷贝 • 10 脚本...

    新版Linux Shell编程实训(全)20170518.docx

    任务2.3 特殊符号 72 任务2.4 Shell案例:显示系统信息: 78 练习(每题12.5分,共计100分) 80 项目三 Shell传递参数 81 [学习目标] 81 任务3.1 Shell传递参数 82 任务3.2 Shell案例:参数比较 85 任务3.3Shell案例...

    Linux与Unix Shell编程指南(PDF格式,共30章)

    本书共分五部分,详细介绍了shell编程技巧,各种UNIX命令及语法,还涉及了UNIX下的文字处理以及少量的系统管理问题。本书内容全面、文字简洁流畅,适合Shell编程人员学习、参考。 目 录 译者序 前言 第一部分 ...

    跟老男孩学Linux运维:Shell编程实战

    前 言第1章 如何才能学好Shell编程 / 11.1 为什么要学习Shell编程 / 11.2 学好Shell编程所需的基础知识 / 11.3 如何才能学好Shell编程之“老鸟”经验谈 / 31.4 学完本书后可以达到何种Shell编程高度 / 5第2章...

    linux shell中的比较符号与特殊符号介绍

    shell字符串比较、判断是否为数字 二元比较操作符,比较变量或者比较数字。注意数字与字符串的区别。 整数比较 -eq 等于,如:if [ “$a” -eq “$b” ] -ne 不等于,如:if [ “$a” -ne “$b” ] -gt 大于,如:if [ “$...

    Shell编程学习笔记-TinyLab出品

    本文由TinyLab.org原创。 这里只是个人学习笔记,主要包括Shell概述、Shell变量、位置参数、特殊符号、别名、各种控制语句、函数等Shell编程知识。

    linux shell 编程教程

    linux shell编程 教程大全 目 录 译者序 前言 第一部分 shell 第1章 文件安全与权限 1 1.1 文件 1 1.2 文件类型 2 1.3 权限 2 1.4 改变权限位 4 1.4.1 符号模式 4 1.4.2 chmod命令举例 5 1.4.3 绝对模式 5 1.4.4 ...

    Shell编程基础

    Shell编程基础,包括变量赋值和引用、流程控制、特殊符号和shell函数等

    绝版经典《Linux与UNIX Shell编程指南》

    前言 第一部分 shell 第1章 文件安全与权限 1 ...第五部分 高级shell编程技巧 第25章 深入讨论&lt;&lt; 281 25.1 快速创建一个文件 281 25.2 快速创建打印文档 281 25.3 自动选择菜单 282 25.4 自动...

    Linux shell编程指南

    本书共分五部分,详细介绍了shell编程技巧,各种UNIX命令及语法,还涉及了UNIX下的文字处理以及少量的系统管理问题。本书内容全面、文字简洁流畅,适合Shell编程人员学习、参考。 目 录 译者序 前言 第一部分 ...

    LINUX与UNIX SHELL编程指南

    本书共分五部分,详细介绍了shell编程技巧,各种UNIX命令及语法,还涉及了UNIX下的文字处理以及少量的系统管理问题。本书内容全面、文字简洁流畅,适合Shell编程人员学习、参考。 目 录 译者序 前言 第一部分 shell...

Global site tag (gtag.js) - Google Analytics