`
jayghost
  • 浏览: 440464 次
  • 性别: 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       
  $?   执行上一个指令的返回值
分享到:
评论

相关推荐

    shell中的特殊符号

    以上介绍的特殊符号是在Shell脚本编程中经常使用的工具。熟练掌握它们不仅可以提升脚本的效率,还能使脚本更加清晰易懂。希望本文能为你提供有用的信息,帮助你在日常工作中更高效地使用Shell脚本。

    shel中特殊符号

    shell 中的特殊符号是 shell 编程的基础,熟悉这些符号的功能和使用方法是非常重要的。本文档将详细介绍 shell 中的特殊符号,包括它们的功能、用途和使用方法。 1.井号 (#):注释符号 井号是 shell 中最常用的...

    Shell编程实验讲稿

    Shell编程实验讲稿主要涵盖了Shell编程的基本概念和实践操作,旨在帮助学习者掌握Linux系统中的Shell脚本编写技能。在实验中,通过具体的知识点练习和综合实验,学习者能够深入理解并应用Shell编程的核心元素。 ...

    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

    高级shell编程 第五部分 高级shell编程技巧(共5部分)

    这一章深入解析了shell中的双左箭头“”符号,它是用于输入重定向的一种特殊方式,通常与Here Documents(也称为here-docs)相关联。Here Docs允许将多行文本输入到命令或脚本中,使得脚本能够动态生成或处理复杂的...

    linux shell 编程1

    Linux Shell编程是Linux系统中非常重要的一个环节,它允许用户通过命令行接口编写脚本,自动化执行一系列操作,极大地提高了工作效率。在这个主题中,我们将深入探讨Linux命令行基础以及Shell编程的相关知识。 首先...

    Shell编程.pdf

    变量的类型包括系统环境变量、自定义变量和特殊符号变量。系统环境变量是系统提供的共享变量,是 Linux 系统加载 Shell 的配置文件中定义的变量共享给所有的 Shell 程序使用。 8. Shell 配置文件 Shell 配置文件...

    linux下shell编程

    ### Linux 下 Shell 编程详解 #### 一、Shell 的概念与作用 Shell 是一种特殊的程序,它作为用户与 Linux/UNIX 操作系统之间的重要接口。...Shell 编程虽然简单,但在日常运维工作中却发挥着不可替代的作用。

    shell编程资料

    Shell编程是Linux或Unix系统中的一种脚本语言,它允许用户通过命令行接口执行一系列操作。这个"shell编程资料"涵盖了基础概念、控制语句、函数以及正则表达式等核心主题,这些都是编写高效shell脚本所必须掌握的知识...

    LinuxShell编程全攻略

    Linux Shell编程是利用Shell语言进行的一种编程方式,它是Linux操作系统中不可或缺的一部分。Shell可以解释和执行用户输入的命令,同时也可以用于编写脚本程序,实现自动化的任务处理。Shell编程的主要特点包括定义...

    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中的特殊符号详解 #### 一、概述 在Shell脚本编程中,存在一系列具有特殊含义的符号,这些符号不仅能够帮助我们更好地控制程序流程,还能提高代码的可读性和可维护性。本文将详细介绍Shell中的一些常用...

    Linux与Unix shell编程指南(完整高清版)

    ### Linux与Unix Shell编程指南知识点概述 #### 一、文件安全与权限 **知识点1:文件权限** - 文件权限用于管理文件的访问控制,确保只有授权用户能够读取、写入或执行文件。 - 权限分为三组:文件属主、同组用户...

    Linux Shell编程基础

    Linux Shell编程基础是掌握Linux系统管理和自动化任务执行的关键技能之一。本文主要介绍如何开始编写Shell脚本,如何处理注释,以及如何执行脚本。同时,我们还将深入探讨Bash中的各种变量,包括环境变量、位置变量...

    Solaris Shell编程

    在IT领域,Shell编程是一种非常基础且重要的技能,特别是在Unix和类Unix系统中,如Solaris。Solaris Shell编程涉及到使用Shell脚本来自动化任务、管理系统以及执行一系列命令。以下是关于"Solaris Shell编程"的详细...

Global site tag (gtag.js) - Google Analytics