Python 和 shell 的基础语法的区别
1.变量、字符串、其他数据类型
python
- python定义和使用只需要使用变量名
- python 比较运算符(>|<|==|>=|<=|!=|is|is not)
- python 逻辑运算符 (and | or | not )
shell
- shell定义变量只需要变量名,而使用变量的值则需要加${}
- 逻辑非(!)、逻辑与(&&)、逻辑或(||)
- 与字符串判断相关的 test 选项:==、>、< 在大部分编程语言中都用来比较数字,而在 Shell 中,它们只能用来比较字符串,不能比较数字,判断数字的大小关系:‐eq(等于),‐ne(不等于),‐gt(大于),‐ge(大于等于),‐lt(小于),‐le(小 于等于)

2.变量的作用域
python
- 内置作用域 (
global变量变成全局变量 ) - 全局作用域
- 嵌套作用域
shell
- 全局变量和局部变量对于父/子Shell的区别:
1)在Shell脚本中,全局变量是在脚本级别定义的变量,它们在当前Shell进程中有效,并且可以被该进程中的所有子进程访问
2)在Shell脚本中,局部变量通常是通过local关键字定义的,它们的作用域仅限于定义它们的函数内部
3)在Shell脚本中,环境变量和全局变量通常划等号,它们在整个系统范围内都是可访问的,包括在子shell中也能使用。环境变量通常是通过export命令定义的自定义变量或Bash内置的环境变量
- 逻辑判断
python
例如: if、elif、else 语句的最后都有冒号":",代码块"由具由相同缩进量的若干条语句组成"
shell
1. if condition; then
statement(s)
fi
(在Shell脚本中,test是一个命令,用于检查某个条件是否成立。在if语句中,[ ]是test命令的另一种表现形式,两者可以互换使用)
2. case expression in # “pattern” 可以匹配正则
pattern1)
statement1
;;
pattern2)
statement2
;;
pattern3)
statement3
;;
*)
statementn
esac
3. while condition # 无限循环的写法 " while : " 或者 "while true "
do
statements
done
4. until condition # 当判断条件不成立时才进行循环,一旦判断条件成立,就终止循环。
do
statements
done
5. for variable in value_list # 可以直接给出具体的值或给出取值范围
do
statements
done
6. select variable in value_list #取值列表 value_list 中的内容会以菜单的形式显示出来,用户输入菜单编号,就表示选中了某个值
do
statements
done

浙公网安备 33010602011771号