shell脚本的基本运用

脚本的运行

这里以red系列的==bash/sh==为例

  • 赋权:需要执行的权限,可以用chmod +x添加
  • sh start.sh(文件名)
  • ./start.sh(文件名)
变量的作用域

    脚本中的变量只作用于脚本当中。set设置的变量,退出系统后回收。

变量的定义
  • 由数字与字母,下划线组成
  • 不能以数字或特殊字符开头
变量的赋值及引号
  • 通过赋值符号=定义 filepath = "/home/shell"
  • data = '单引号' 字符串类型,不会解析任何字符
  • str = "双引号" 字符串类型,内部会解析$和转义字符
  • 反引号`date`执行系统命令
变量的引用

使用美元符号$加变量名

name = "pangmao"
echo ${name}
当变量附近没有其他字符时,可通过$name调用变量

环境变量

环境变量的定义:

环境变量一般是指操作系统中用来指定操作系统运行的环境。如PTAH,USER,PWD

常见的环境变量
PATH:系统路径
HOME:当前用户家目录
HISTSIZE:保存历史命令记录的条数
LOGNAME: 当前用户登录名
HOATNAME:主机名称
SHELL:当前用户使用的shell
MAIL:当前用户邮件存放目录
查看环境变量
  • env:显示所有环境变量
  • set: 查看所有系统变量
  • echo $PATH :显示某一个环境变量的值
预定义变量
变量名 说明
    $#     传递到脚本的参数个数
    $*     以一个单字符串显示所有向脚本传递的参数。如"$n"的形式输出所有参数。
    $@      与$*相同,但是使用时加引号,并在引号中返回每个参数。如"$1"
    $$     脚本运行的当前进程号
    $?     显示命令的最后退出状态。0代表没有错误
    $!     后台运行的最后一个进程号

变量的输入和输出

echo:
    -e 转义所有的转义字符。等同于python中的原始字符r
    -n 忽略结尾的换行
    
printf:
    printf输出默认没有换行。可通过\n换行
    支持%s,%d等格式化输出

read:
    读取标准输入的下一行。
    read + 变量名,通过变量名接收下一行的输入。
标准输入输出和错误输出:

       标准输入(stdin)是命令数据的输入,代码为0,使用< or <<,默认是键盘

       标准输出(stout)是命令执行成功返回的的结果,代码为1,使用> or >>,默认是屏幕

       标准错误输出(stderr)是命令执行失败返回的错误信息,代码为2,使用2> or 2>>

image

这是 ls : 标准输入

ls命令显示的文件名就是标准输出

image

-bash: 少杰真帅: command not found这句话就是错误输出。(ps:不要在意细节)

shell脚本的基本运用_第1张图片
image

> 重定向到某个文件,这里是将ll的标准输出重定向到ll.txt

shell脚本的基本运用_第2张图片
image

>> 重定向追加到某个文件

shell脚本的基本运用_第3张图片
image

<:指定输入数据的来源。

其他指令如下,用法如上面雷同。

1>:     将正确的内容覆盖输出到指定的文件。

1>>:   将正确的内容追加到指定的文件。

2>:     将错误信息覆盖输出到指定的文件。

2>>:   将错误信息追加输出到指定的文件。

你可能感兴趣的:(shell脚本的基本运用)