Shell脚本和编程 | 青训营笔记

67 阅读1分钟

这是我参加前端训练营笔记活动的第3天。

Shell基础

概念

终端:获取用户输入、展示运算结果的硬件设备
tty:teletypeWriter的简称,和终端等价,早期指电印机,在Linux中是输入/输出环境
终端模拟器:Mac Terminal、iTerm2等,关联虚拟tty的输入输出软件
Shell:command interpreter,处理来自终端模拟器的输入,解释执行之后输出结果给终端
Bash:Shell的一种具体实现

语法和命令

变量

image.png

自定义变量

#!/bin/bash

#变量名=变量值(等号左右不能有空格)
page_size=1
page_num=2

#将命令复制给变量
_ls=ls

#将命令结果赋值给变量
file_list=$(ls -a)

#声明变量为整型
let total=page_size*page_num
declare -i total=page_size*page_num

#导出环境变量
export total
declare -x total

系统环境变量

变量名含义常见操作
$o当前shell名称/脚本名称11、2等可以获取到传入参数
$#传入脚本的参数数量if[$#] -gt 1
$*传入脚本的所有参数
$?上条命令执行的状态码if[$?] -eq o
$PS1命令提示符export PS1="\u@\h\w>"
$HOME用户主文件夹cd~
$PATH全局命令的搜索路径PATH=$PATH:[新增路径]

运算符和引用

image.png

管道

管道与管道符|,作用是将前一个命令的结果传递给后面的命令
语法:cmd1|cmd2
要求:管道右侧的命令必须能接受标准输入才行,比如grep命令,ls、mv等不能直接使用,可以使用xargs预处理
注意:管道命令仅仅处理stdout,对于stderr会予以忽略,可以使用set -o pipefail设置shell遇到管道错误退出 image.png

重定向

image.png 输出重定向符号:

image.png