1.静态语言:编译型语言 强类型(变量)
事先转换成可执行格式 也就是先编译在执行
比如 C++、C、 java C#
动态语言:解释性语言 弱类型
边解释边执行
比如PHP shell python perl
2.变量类型:
事先确定数据的库存格式和长度
字符
数值:整型 浮点型
单引号是强引用 不做变量替换的
双引号是弱引用 内部的变量会替换
反引号( ``或是$(命令) )表示引用命令的执行结果
a="ab h"
echo ${#a}
4
上边两条命令会显示变量的长度(包括空格)
3 bash变量类型
环境变量:echo $PATH
本地变量:
位置变量:$1、$2、$3、$4、$5
特殊变量:$? 这代表上一个命令的执行状态返回值。
一个程序执可能有两类返回值:
<1>程序执行结果
<2>程序状态返回代码(0-255)
0:正确执行 1-255:错误执行1、2、127系统预留。
用法:在一个命令执行完之后用echo $?命令 如果显示0说明当前的命令执行成功
如果显示2说明是权限拒绝
如果显示1-125说明运行失败
如果显示127为找到运行的命令
4.撤销变量: unset 变量名
5.查看当前shell中变量: 用set命令
6.查看当前shell中的环境变量:<1>printenv <2> env <3>export<4>set(它能列出全局和非全局的变量) 都可以
7.特殊变量:$#:参数的个数 $*:表示参数的所有内容。(将命令行所有的参数视为单个字符串。等 同于“$1$2$3”)
$@:表示参数的所有内容。(将命令行所有的参数视为单独的字符串。 等同于“$1”“$2”“$3”,这时将参数传递给其他程序的最好方 式,因为他会保留所有内嵌在每个参数里的任何空格)用的时候 要加双引号"$@".
set -- 参数1 参数2 参数3这个可以模拟出位置参数
例子:
set -- 参数1 参数2 参数3这个可以模拟出位置参数
for i in "$@" ; do
echo $i
done
8.全局变量的文件在:/etc/profile. 修改完之后又两种办法生效:<1>用. /etc/profile <2> source /etc/profile
9.设置全局变量
export 变量名称=变量值 他可已将这个变量变成全局变量
declare -x 也可以
declare -i 变量=值 //变量默认的为字符串,想要让一个变量为整型可以声明,这表是将一个变量声明为整型
在/etc/profile中尽量要遵循这种标准的格式
例子:系统自带的环境变量
echo $HOSTTYPE 查看系统是多少位的操作系统
echo $PATH 查看当前的环境变量
echo $SHELL 查看系统默认使用的shell
cat /etc/shells 查看系统支持哪些shell
echo $UID 查看当前用户的UID
echo $HISTSIZE
chsh 用户名 可以改变用户的shell平台。
10.局部变量赋值
<1>变量名=变量值 例子:a=1
<2>read 命令(可以与用户产生交互,就是可以用这个命令写一段提示语句)
格式:read 变量1 变量2 //可以是1个或是多个变量然后输入变量值
read -p “提示语” 变量名 例子:read -p “请输入数字:” a
read -n 表示不换行
read -t 数值 表示等待超时间,就是等待用户输入的时间
11.cat << END END表示文档结束标记.它写成什么都行,只要结尾一致就行
用户手动输入内容
END
它可以等待用户输入内容
cat << END > 文件名
用户手动输入内容
END
//用户手动输入的内容输入到文件里