在定义变量时,如果有空格,记得用双引号来括起来。
变量=变量值
接下来是数组变量
数组名[n]=变量值 这只能一个一个赋值。
数组名={a a a } 默认从0开始
数组名1={[3]=a [33]=a [23]=a } 自定下标
定义数组后,可再赋其下标值
数组名1[n]=变量值
显示
echo ${数据名[下标号]} 可用1-n/*/@
shell支持定义变量为只读
变量=变量值
readonly 变量 变量只能读。不能再从赋值,也不能删除
对不常用的变量可进行删除
unset 变量
通过export 将变量放入环境中
export 变量
在/root/.bash_profile 文件,就常用export让变量加入环境变量中。
用户变量是用户可手工设置和重设的变量,Shell变量在初始化和使用中设置的变量,用户可以引用或改变这些变量的值
echo $uid /path 等等都是shell变量。
替换
文件名替换通配符:*(0/多个字符) ?(一个字符) [characters](匹配字符集之一)
如查找文件 : ls aa*/?/[kdkd/a-z\-\+\\\'\"] []里面的符号要用转义字符\
变量替换
${parameter:-word} 若p为空或未设置,则用w代替p进行替换,但p值不变 :PSI=${p:-world}
${parameter:=word} 若p为空或未设置,则p值设为w值
${parameter:?message} 若p为空或未设置,则message作为标准错误要印出来。可用来检查变量。
${parameter:+word} 若p设置了,则用w代替p进行替换,但p值不变
注:在shell脚本变量(shell里的变量),只在shell文件运行时有效,shell结束后,没效。
命令替换
在shell文件里。命令用` ` 后引号而不是''单引号或$(变量)
DATA=`date` USERS=`who | wc -l` ps -aux | grep 'id -un'
算述替换
foo=$((..))
引用
关掉一个字符的特殊意义称为“引用”
1,使用反斜线字符\
2,使用单撇号' 单撇号内的所有特殊字符都失去特殊含义
3,使用双撇号“ 多数失去特殊含义,除: $ ` \$ \' \" \\ 这是shell下,不是grep。如grep "^_"
特殊字符简称元字符。如*?[]"'()^<>等等。
述语:特殊字符,元字符,通配符,所有这些术语指出的都是不能按其意思理解的字符。
grep '[0-9][0-9] * $' report2 report7 这是正规表达式(通配符)模式,grep用它在report2和report7的内容间搜索与其匹配的字符串,用于grep模式中的通配符必须被引用,以免shell错误地使用。
引用规则:
反斜线取消紧跟其后一个字符的特殊含义
在命令执行前,正在引用的字符被删除
单撇号删除所有它所所引用字符的特殊含义
引用规则字符是不会出错的
单撇号不能插在单撇号之间
双撇号删除了大部分它所引用字符的特殊含义
引用可以忽略单词边界
不同类型的引用可以复合在一个命令中
为将空格嵌入单个参数中,需要引用它
引用换行符以达到使一个命令在下一行续行的目的
使用引用访问包含特殊字符的文件名
引用正规表达式通配符
使用反斜线打开echo转义序列
为cpio和find引用通配符
在find grep等命令中,通配符对应用双撇号,以免错误shell命令。
流控制。
命令在shell脚本中执行的顺序称为脚本流。
注:定义一个变量后,它仅存在于当前shell进程中,它是本地变量。在其它shell运行,不起作用,必须用export命令转为环境变量。简称导出。
判断if后面的test expression是否成立,真为0,假为非0
if list1; then 或 if list1; then
list2; list2;
elif list3; then else
list4; list5;
else if
list5;
fi
test expression可以是文件测试,字符串比较,数字比较等等。它可用[ expression ] []里面二边必须与expression空格分开。 if [ a ];
文件测试的选项
[ -b file ] 文件是否存在且是一个块特殊文件,则为真
-c file 字符
-d file 目录
-e file 是否存在
-f file 规则
-g file 设置了SGID位的值
-h file 符号连接
-k file 设置sticky位的值
-p file 命名管道
-r file 可读
-s file 大小大于零
-u file 设置SUID位的值
-w file 可写
-x file 可执行
-o file 被有效用户ID所拥有
进程:
我们可以使命令前/后台运行。系统默认输入输出于与用户终端相联。用户可以重定向设置。
在用户在系统进行工作时,突然中断,则用户的进程也就终止,如要长时间运行,可应用nohup/&来使后台进程进行。
在后台运行一个进程,用户不需等待一个进程完成再启动另一个进程。
在终端下,stty -a 查看哪个快键执行哪个功能。
bg命令使用户能把悬挂进程置到后台。fg把进程返回到前后。
在启动一个运行时间长的进程时,按ctrl+Z 让它悬挂起来,然后bg ,让要在后台恢复工作。
fg默认是把最近一个被 悬挂或移到后台的进程将被移到前台。 fg 或者 fg %[1-n]
在挂悬或后台进程用jobs 查看,因为它是前台进程,所以只能查看到后台进程。
用另一种ps ,它可以查到前后台进程情况。
关闭与杀掉一个进程号,kill -9 .
阅读(1569) | 评论(1) | 转发(0) |