shell编程
shell是过程式、解释执行的语言
shell编程语言的基本结构:
- 各种系统命令的组合
- 数据存储:变量、数组
- 表达式:a+b
- 控制语句:if
#!/bin/bash
#!/usr/bin/python
【shell编程】bash--is an sh-compatible command language interpreter that executes commands;
bash -n file # 检查语法
bash -x file # 检查并执行
变量
变量类型: 内置变量:PS1,PATH,UID,HOSTNAME,$$,BASHPID,HISTSIZE等
用户自定义变量
变量数据类型: 字符
数值:整型、浮点型
变量赋值
name='host'
name="$NAME" -- 弱引用,替换为变量值;
name='$NAME'--强引用,原字符串输出;
name=`COMMAND` 或者 name=$(COMMAND)
变量追加值
NAME+=:wang
显示已定义的所有变量
set
unset 取消变量
lscpu|grep 'Model name'|tr -s ' '|cut -d : -f2
free -h |grep 'Mem'|tr -s ' ' :|cut -d : -f2
lsblk|grep '^sd'|tr -s ' ' :|cut -d : -f5
环境变量: 一般只在系统配置文件中使用,在脚本中较少使用;子进程可以继承父进程的环境变量;
声明并赋值环境变量:
export NAME=VALUE
declare -x NAME=VALUE
显示所有环境变量
env
printenv
export
declare -x
删除环境变量
unset NAME
只读变量
readonly NAME
declare -r NAME
位置变量
在bash shell中内置的变量,调用通过命令行传递给脚本的参数
$1,$2,....,${n} # 第几个变量
$0 #命令本身,包括路径
$* #所有参数,全部参数合为一个字符串
$# #所有参数,每个参数为一个独立的字符
退出状态码变量--$?
格式化输出printf
format and print data
替换符:
%-10s -- 字符串,10个,左对齐
%f -- 浮点
%d,%i -- 十进制整数
%o -- 八进制值
%u -- 不带符号的
%x -- 十六进制(a-f)
%X -- 十六进制(A-F)
%% -- %本身
转义符:
\b -- 后退
\n -- 换行
\r -- 回车
\t -- 水平制表符
\v -- 垂直制表符
\or其他字符 -- \本身或其他字符
算数运算
let var=1+1
var=$[1+1]
let i+=1
逻辑运算
$[x^y]
$[x&y]
$[x|y]
$[!x]
()和{}的区别
批量执行命令(CMD1; CMD2; ..)/{ CMD1; CMD2; .. }
()会开启子shell
{}不会开启子shell
推荐阅读
- Shell-Bash变量与运算符
- python青少年编程比赛_第十一届蓝桥杯大赛青少年创意编程组比赛细则
- HTML基础--基本概念--跟着李南江学编程
- 我的软件测试开发工程师书单
- Linux|109 个实用 shell 脚本
- 芯灵思SinlinxA33开发板Linux内核定时器编程
- 关于响应式编程的十个问题
- iOS-Swift-map|iOS-Swift-map filter reduce、函数式编程
- 零基础学习Python作业本(13)
- 网络编程基础--HTTP