编程基础-shell - DAY9
Linus: Talk is cheap,show me the code
三种逻辑
顺序执行
选择执行
循环执行
bash
-n 检查语法错误 无法检查命令错误
语法错误后续命令不执行
-x 跟踪语法执行过程
查询逻辑错误
变量
内置变量
PS1 PATH
用户自定义变量
静态语言和动态语言
动态编程语言 不需要事先声明 可随时改变类型
静态编程语言 使用变量前 先声明变量类型 之后类型不能改变 在编译时检查
强类型和弱类型
强类型语言 不同类型数据操作 必须经过强制转换才同一类型才能运算
弱类型语言 语言运行时会隐式做数据类型转换 无需定义类型 默认均为字符串
参与运算会自动进行隐式类型转换 变量无需事先定义直接调用
命名习惯
变量名 大写
局部变量 小写
函数名 小写
大驼峰 StudentFirstName
小驼峰 studentFirstBane
下划线 student_name
变量定义和引用
定义
name=‘vlaue’
引用
$name
${name}
unset xxx 去除变量名
“变量名” 保留原来格式
‘变量名’ 只认为为字符串
变量名+= 追究变量
set 显示所有变量
$BASHPID 子进程ID
pstree -p 查看父子进程
变量只在当前bash有效
export 看环境变量
unset 删环境变量
cat /proc/PID/environ 查询某个进程的环境变量
readonly name 常量 只读变量
位置变量
$# 参数数量
$* 所有参数 作为个整体
$@ 所有参数 每个是独立字符串
$0 脚本名
软连接 $0 实现的是运行脚本名
$? 前一个命令执行状态的返回码
0-255
0为成功 失败为1-255
exit 定义返回码
set -e 安全脚本
异常退出
set -u 变量没定义
异常退出
printf “指定格式” “文本1” “文本2”
%s 数字
%f 浮点数
默认左对齐 ‘ - ‘ 右对齐
\n 换行
RANDOM 0-32767 随机数
逻辑运算
1 真
0 假
与 &
或 |
非 !
条件测试命令
test
等价[ xxx ]
read 默认输入到$REPLY
if comands;then
commands
elif commands;then
commands
else
commands
fi
case xxx in
0)
xxx
;;
1)xxx
;;
*)
xxx
;;
esac
for in xxx ;do
xxxx
done
浙公网安备 33010602011771号