shell编程快速入门四:shell中特殊符号和位置符号

shell中特殊符号

符号作用
‘ ‘单引号。在单引号中所有的特殊符号,如“$”和”(反引号)都没有特殊含义。单引号括起来的都是普通字符,会原样输出
” “双引号。在双引号中特殊符号都没有特殊含义,但是“$”,“`”(esc键下面)和“\”是例外,拥有“调用变量的值”、“引用命令”和“转义符”的特殊含义。
` `反引号。反引号括起来的内容是系统命令,在Bash中会先执行它。和( ) 作 用 一 样 , 不 过 推 荐 使 用 (),因为反引号非常容易看错。
$()和反引号作用一样,用来引用系统命令。(推荐使用)
()用于一串命令执行时,()中的命令会在子Shell中运行
{}用于一串命令执行时,{ }中的命令会在当前Shell中执行。也可以用于变量变形与替换。
[ ]用于变量的测试。
#在Shell脚本中,#开头的行代表注释。
$用于调用变量的值,如需要调用变量name的值时,需要用$name的方式得到变量的值。
\转义符,跟在\之后的特殊符号将失去特殊含义,变为普通字符。如$将输出“$”符号,而不当做是变量引用。

单引号和双引号

[root@localhost ~]$ name=sc
#定义变量name 的值是sc(就是最正直的人,超哥我了!)
[root@localhost ~]$ echo '$name'
$name
#如果输出时使用单引号,则$name原封不动的输出
[root@localhost ~]$ echo "$name"
sc
#如果输出时使用双引号,则会输出变量name的值 sc

[root@localhost ~]$ echo `date`
2018年10月21日星期一18:16:33 CST
#反引号括起来的命令会正常执行
[root@localhost ~]$ echo '`date`'
`date`
#但是如果反引号命令被单引号括起来,那么这个命令不会执行,―date`会被当成普通字符输出
[root@localhost ~]$ echo "`date'"
2018年10月21日星期一18:14:21 CST
#如果是双引号括起来,那么这个命令又会正常执行

反引号

[root@localhost ~]$ echo ls
ls
#如果命令不用反引号包含,命令不会执行,而是直接输出
[root@localhost ~]$ echo `ls`
anaconda-ks.cfginstall.loginstall.log.syslog sh test testfile
#只有用反引号包括命令,这个命令才会执行
[root@localhost ~]$ echo $(date)
2018年10月21日星期一18:25:09 CST
#使用$(命令)的方式也是可以的

特殊重要位置参数

位置参数作用
$0获取脚本的名称,如果全路径执行,则获取的是全路径名称
$n获取脚本的第几个参数,注意:传参的个数如果10以后要加花括号
$#获取脚本传参的总个数
$*获取传参的所有参数,如果不加双引号和$@相同;如果加双引号,获取的是一个整体
$@获取传参的所有参数,如果不加双引号和$*相同;如果加双引号,获取的是单个参数
$?获取上一条命令的执行结果,0为成功,非0失败
$$获取脚本的PID,当系统执行多个shell脚本时使用
$!获取上一个脚本的PID
$_获取上一个脚本的最后一个参数

$0、$n、$#

shell编程快速入门四:shell中特殊符号和位置符号

$*、$@

shell编程快速入门四:shell中特殊符号和位置符号

$?

shell编程快速入门四:shell中特殊符号和位置符号

$$、$!

shell编程快速入门四:shell中特殊符号和位置符号

原创文章,作者:三酷猫,如若转载,请注明出处:https://www.sankumao.com/5322.html

(0)
上一篇 2023年2月8日 下午1:50
下一篇 2023年2月8日 下午11:58

相关推荐

  • shell编程快速入门五:shell运算符

    在shell中,运算符和其他编程脚本语言一样,常见的有算数运算符、关系运算符、逻辑运算符、字符串运算符、文件测试运算符等 算数运算符 原生bash不支持简单的数学运算,但是可以通过…

    2023年2月8日
  • Linux使用ntpdate命令同步时间

    为了避免主机时间因为长期运作下所导致的时间偏差,进行时间同步(synchronize)的工作是非常必要的。Linux系统下,一般使用ntp服务器来同步不同机器的时间。一台机器,可以…

    2023年2月14日
  • sysctl.conf文件详解

    一、文件作用 由于默认的Linux内核参数考虑的是最通用的场景,这明显不符合用于支持高并发访问的Web服务器的定义,所以需要修改Linux参数,使得Nginx等Web服务可以拥有更…

    2023年2月14日
  • shell专项:sed 文本选取、替换、删除、新增的命令

    sed主要是用来将数据进行选取、替换、删除、新增的命令。 一、语法 二、常用操作 1.提取行数据 还是使用student.txt来作展示。student.txt文件如下 : 指定输…

    2023年2月16日
  • shell编程快速入门七:流程控制

    一、条件选择 1.选择执行if语句 格式:if COMMANDS; then COMMANDS; [ elif COMMANDS; then COMMANDS; ]… [ el…

    2023年2月15日
  • shell编程快速入门一:脚本书写规范、脚本执行方式

    一、什么是shell? 命令解释器,解释我们输入的命令或者脚本 shell脚本:就是把能在命令行执行中命令放在一个文件里,包括了判断语句,循环语句,数组函数等等 二、脚本书写规范 …

    2023年1月14日
  • shell编程快速入门九:字符截取、替换和处理命令

    一、正则表达式 更多的可以参考这篇文章:https://www.jb51.net/tools/shell_regex.html 1.正则表达式与通配符 正则表达式是用在文件中匹配符…

    2023年2月16日
  • shell编程快速入门二:变量

    一、变量命令规则 包含字母、数字、下划线,建议以字母或下划线开头,等号两边不能有空格,见名字知其意! sankumao_age=18 第一种写法 Sankumao_Age=18 大…

    2023年1月30日
  • 使用scp命令在Linux和Windows互传文件

    scp是 secure copy的缩写, scp是linux系统下基于ssh登陆进行安全的远程文件拷贝命令。linux的scp命令可以在linux服务器之间复制文件和目录。此外也可…

    2023年1月14日
  • shell专项:awk编程

    AWK 是一种处理文本文件的语言,是一个强大的文本分析工具。 一、printf 格式化输出 示例: 如果不想把成绩当成字符串输出,而是按照整型和浮点型输出,则要这样: 二、awk …

    2023年2月16日