Python全栈之路Day9
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Python全栈之路Day9相关的知识,希望对你有一定的参考价值。
初次编辑2017年9月25日 22:43:40
摘要
引用:海峰老师
- Shell的基本语法
- 流程控制、脚本传参
一.shell的基本语法—变量
- 命名规则
- 以字母开头
- 使用中划线或者下划线做单词的连接
- 同类型的用数字区分
- 对于文件最好加上拓展名
- 系统变量
- set 和 env区别
- set:显示所有变量
- env:系统变量
- 变量赋值
- unset VARNAME:删除变量
- 常用系统变量
- PATH
- PWD
- LANG
- HOME
- HISTSIZE:历史日志行数
- PS1:存放用户信息
- IFS
- export:定义全局变量
- 定义变量名的边界
[[email protected] ~]# rest_mem=20
[[email protected] ~]# echo ${rest_mem}%
20% - 数据类型
二. shell的基本语法—运算符
- 算术运算符
- +
- -
- *
- /
- %
- 关系操作
- <
- >
- <=
- >=
- ==
- !=
- &&
- ||
- 以上与(())连用
- test命令相关,[]可以达到一样的效果
- 赋值运算符
- =
- +=
- *=
- /=
- %=
- [[email protected] ~]# ((x%=3))
[[email protected] ~]# echo $x
- shell里的所有计算器
- $[]
- (())
- $(())
- expr
- 浮点运算bc软件
- yum install bc -y
- echo ‘scale=2;1/3‘|bc -l(保留两位,1除以3运算)
- 测试操作
- 命令执行后会返回到一个系统变量中 ?值为0 表示命令执行成功 否则为失败
- 测试命令 test [ ] [[ ]] (( ))
- 测试文件状态
- -d 目录
- -e
- -h 链接文件
- -s 文件长度 > 0、非空
- -f 普通文件
- -w 可写
- -r 可读
- -x 可执行
- -L 符号连接
- -u 文件有 suid 位设置
- -b block文件
- 字符串测试
- = 两个字符串相等
- != 两个字符串不相等
- -z 空串
- -n 非空串
- 测试数值
- -eq 等于
- -ne 不等于
- -gt 大于
- -lt 小于
- -ge 大于等于
- -le 小于等于
- 拓展测试符号
- 测试文件状态
三. 流程控制
- 流程控制之if语句
#!/bin/bash
var=‘/etc/init.d‘
#var=‘/dev/sda‘
if [ -d $var ]
then
echo "$var is directory"
elif [ -b $var ]
then
echo "$var is block"
elif [ -f $var ]
then
echo "$var is regular file"
else
echo ‘unknow‘
fi
- 向脚本传递参数
#test.sh
echo $0
echo $1
echo $2
echo $3
echo ${11}
echo ‘$$‘ $$
echo ‘$*‘ $*
echo ‘[email protected]‘ [email protected]
echo ‘$#‘ $#
echo ‘$?‘ $?
‘‘‘
测试:python test.sh 1 2 3 4 5 6 7 8 9 10 11
输出结果:
./test.sh
2
11
$$ 14312
$* 1 2 3 4 5 6 7 8 9 10 11
[email protected] 1 2 3 4 5 6 7 8 9 10 11
$# 11
$? 0
‘‘‘
* $0 为运行的文件名
* $$ 为进程pid
* $* 为输入的所有的参数
* [email protected] 同$*
* $# 输入参数个数
* $? 上一条命令是否执行成功
- 修改脚本,使其能接收调用者传来的参数
[[email protected] ~]# cat test_file.sh
#!/bin/bash
if [ -d $1 ]
then
echo "$1 is directory"
elif [ -b $1 ]
then
echo "$1 is block"
elif [ -f $1 ]
then
echo "$1 is regular file"
else
echo ‘unknown‘
fi
[[email protected] ~]# ./test_file.sh /etc/passwd
/etc/passwd is regular file
- 检测nginx是否启动,如果没启动,将其启动
#! /bin/bash
ps aux|grep nginx|grep -v grep
if [ $? -eq 1 ]
then
systemctl start nginx
fi
作业
今日总结
以上是关于Python全栈之路Day9的主要内容,如果未能解决你的问题,请参考以下文章
2018-5-22-Python全栈开发day9-Python开发课程简介part2