Fork me on GitHub

shell学习笔记1: shell 中的变量与常见符号使用方法

变量

声明即用

a=2
b="123"

调用
${varName}或者 $varName

echo $b
echo ${a}

常见变量

  • $?:判断上一个语句是否成功
  • $0:执行脚本文件名称
  • $1:第1个参数
  • $n:第n个参数
  • $*:参数分别是什么
  • $#:参数个数

示例

demo1.sh

echo "脚本文件名称:$0"
echo "第1个参数:$1"
echo "所有的参数:$*"
echo "参数个数:$#"

赋予执行权限

chmod u+x demo1.sh

执行

./demo1.sh param2 1 2 3

输出结果

脚本文件名称:./demo1.sh
第1个参数:param2
所有的参数:param2 1 2 3
参数个数:4

符号

常见符号

> :向目标文件写入内容

  • 会覆盖掉原来的内容

  • 例子:向文件1.txt写入hello world字符串

      # 直接在bash中可运行
      echo hello world > 1.txt 
    

>> :向目标文件尾部插入内容

  • 在源文件尾部追加内容

  • 例子:向文件1.txt增加一行hello world字符串

      # 直接在bash中可运行
      echo hello world >> 1.txt 
    

; :执行多条指令

  • 例子:追加一行内容,然后显示文件当前的内容

      # 直接在bash中可运行
      echo hello world >> 1.txt ; cat 1.txt
    

| :管道符

  • 将上一条命令的处理结果传给下一个命令处理
  • 例子:将cat结果传给wc命令统计行数
      # 直接在bash中可运行
      # 最后一个字母为小写的L
      cat 1.txt | wc -l
    

&& :执行多条命令

  • 前一条命令出错,会阻塞后续命令执行
  • 例子:向1.txt追加一行内容 再查看其行数
      # 直接在bash中可运行
      echo str >> 1.txt && wc -l 1.txt
    

|| :执行多条命令

  • 前一条命令出错才会执行后续指令
  • 例子:向1.txt追加一行内容出错 ,再查看其内容
      # 直接在bash中可运行
      echo3 str >> 1.txt || cat 1.txt 
    

"" :能够输出变量值

  • 能够解析字符串中的 $varName 变量

  • 例子:输出hello

    # 编写demo3.sh
    
      a="hello"
      echo "$a" 
    

'' :不能够输出变量值

  • 不够解析字符串中的 $varName 变量

  • 例子:不能输出hello

    # 编写demo3.sh
    
      a="hello"
      echo '$a' 
    

    输出结果为:$a

`` :输出命令结果

  • 例子:输出当前的日期

  • date命令可获取当前日期

    echo `date`
    

2>/dev/null :错误输出到无底洞

  • 命令执行错误则不会出现错误提示

  • 执行正确才会有输出结果

  • 例子

    # 执行
    echo1 123
    # 正常错误输出
    bash: echo1: 未找到命令
    # 使用无底洞
    echo1 123 2>/dev/null
    # 没有任何内容输出
    

1>/dev/null :正确输出到无底洞

  • 命令执行正确则不显示执行结果

  • 执行错误才会有错误提示内容

  • 例子

    # 执行
    echo 123
    # 正常输出
    123
    # 使用无底洞
    echo 123 1>/dev/null
    # 没有任何内容输出
    
posted @ 2019-12-24 19:59  粥里有勺糖  阅读(419)  评论(0编辑  收藏  举报