shell脚本(七)

j、数组

#关联数组:,一般的数组索引必需是数值,而关联数组索引可以是字符串

#也可以是数值,与python的字典类似

awk ‘BEGIN {str[name]="string";str[1]="1"};printf("%s\n%s\n",str[name],str[1])}

#split函数,注意for(i in name)输出是随机的

awk -F: ‘{split($0,name,":");for(i in name) print i,":",name[i]}‘ num.txt

awk -F: ‘{split($0,name,":");for(i=1;i<=NF;i++) print i,":",name[i]}‘ num.txt

#数组形式的系统变量,ENVIRO储存的是系统环境变量

awk ‘BEGIN { for(i in ENVIRON) print i "=" ENVIRON[i]}‘

5、变量和引用

(1)变量

a、变量替换和赋值

#变量名只能包含大小写字母、数字、下画线等符号,并且不能以数字开头

#变量赋值

var=value:将value值赋给var

var+value:对已赋值的var,重设其值

var?value或var:?value:对未赋值的var,显示系统错误信息

var:=value:对未赋值的var,将value值赋给它

var:-value:对未赋值的var,将value值赋给它,但value值不存储到var对应的地址空间

echo ${name:-carl}

echo ${name:=carl}

echo ${var?test}

echo ${var:?test}

#设置只读变量

readonly rdonly

b、无类型的shell脚本变量

#shell的变量是无类型的,不支持浮点型,只支持整形和字符型

#字符型变量有一个默认整型值0,字符型变量默认为空,直接将字符串赋值给整型

#变量,整型变量就会变成字符变量,让字符变量自增1,变量就会变成

#整型,并且数值为0

name="test"

num="123"

#将字符变量name强制转换成整型,值同样还是"test"

#转换后直接当数值使用,则默认值=0

declare -i name

echo $name

#将字符型变量自增1,就会变成整型。如果变量值全部是数字,则会当作整型使用

let name++

echo $name

let name++

echo $name

c、环境变量

#定义和清除环境变量,环境变量一般使用大写字母

MYLS=/bin/ls

export MYLS

echo $MYLS

$MYLS

#清除环境变量,清除后变量值默认变为空

unset MYLS

echo $MYLS

#常用环境变量

PWD:当前工作目录

OLDPWD:上一次工作目录

PATH:指明可执行文件路径

HOME:当前用户的根目录

SHELL:默认为/bin/bash

USER:登录用户名

UID:登录用户ID

PPID:创建当前进程的进程号,即当前进程的父进程号

PS1:提示符变量,用于设置一级shell提示符格式,默认为"[\[email protected]\h \W]\$"

PS2:提示符变量,用于设置二级shell提示符格式,默认为">",输入不完全命令时会显示

\u:表示当前用户名

\@:表示以12小时制显示时间

\h:表示主机名

\W:表示当前工作目录名称

\w:表示当前工作目录完整名称

\$:如果UID为0,打印"#";否则,打印"$"

#IFS:Shell域分隔符,默认为空格,改为":",域与域之间就以空格分隔开来

export IFS=:

echo $PATH

#环境变量配置文件:.bash_profile、.bashrc、.bash_profile和/etc/profile

#前3个全部以隐藏形式存放到$HOME/下,针对对应的用户,而最后的是针对全局设置

d、位置参数

(2)引用

a、全引用和部分引用

b、命令替换

c、转义

6、退出、测试、判断和操作符

(1)

7、变量高级用法

8、I/O重定向

9、子shell与进程处理

10、函数

11、别名、列表和数组

12、脚本调试

13、shell实战

时间: 2024-08-04 03:33:46

shell脚本(七)的相关文章

Shell脚本编程知识点总结及范例

 一:关于语言 1)编译性语言 编译型语言多半运作于底层,所处理的是字节.整数.浮点数或其它及其机器层经的对象.处理过程为:源程序--预处理--编译--汇编--链接,编译性语言为静态语言. 2)解释性语言 解释性语言读入程序代码并将其转化为内部的形式加以执行.处理过程:解释性(文本文件)-解释器去读取并执行.解释性语言为动态语言. 二:基础 变量类型 linux脚本中的变量不需要事先声明,而是直接定义使用(这点不同于其他高级编程语言中变量的使用)bash变量类型分为本地变量和环境变量. 本地变量

shell脚本基础知识(下)

七.shell中的case判断 格式: case  变量名 in value1) command ;; value2) command ;; *) commond ;; esac 在case程序中,可以在条件中使用|,表示或的意思, 比如: 2|3) command ;; 当变量为2或者3时,执行该部分命令. 应用举例: [ [email protected]  shell]# cat test7.sh  #!/bin/bash read -p "请输入学生的成绩: " num n1=

Linux shell脚本基础学习详细介绍(完整版)二

详细介绍Linux shell脚本基础学习(五) Linux shell脚本基础前面我们在介绍Linux shell脚本的控制流程时,还有一部分内容没讲就是有关here document的内容这里继续. Linux shell脚本基础已经被分成好几个部分了,这里对控制流程的内容也就马上讲完了,这是最后一部分关于here document,这里举例稍微有点复杂,我们慢慢来分析这个复杂Linux shell脚本. 6. Here documents 当要将几行文字传递给一个命令时,here docu

Shell脚本-----自动备份Mysql数据库

脚本的整体思路 1.定义需要的变量 2.利用for循环备份需要备份的库,并以库名-当天日期.sql命名,并记录相关日志 3.建立备份当天的日期的目录,向备份的Sql文件移动到该目录 4.压缩打包该目录,以节省空间,打包成功后删除该目录 5.备份目录只备份七天的数据库,第八天删除第一天的备份,目录只会存在连续七天的备份文件 6.查找备份目录下的.log日志文件,超过七天的删除 #!/bin/bash mysql_bin=/usr/local/tdoa/mysql/bin/mysqldump use

shell脚本编程进阶练习题

这两天学习了shell脚本编程进阶,作为一枚文科生,小编觉得...恩..脚本很烧脑.....,不过小编还是做了些题,稍作总结后,呈给各位看官,内容如下: 一.条件选择if语句 选择执行: 注意:if语句可嵌套 单分支 if 判断条件;then 条件为真的分支代码 fi 双分支 if 判断条件; then 条件为真的分支代码 else 条件为假的分支代码 fi 多分支 if 判断条件1; then 条件为真的分支代码 elif 判断条件2; then 条件为真的分支代码 elif 判断条件3; t

Linux中的shell脚本编程——基础篇

概述: shell脚本在Linux系统管理员的运维工作中非常重要.shell脚本能够帮助我们很方便的管理服务器,因为我们可以指定一个任务计划,定时的去执行某一个脚本以满足我们的需求.本篇将从编程基础.脚本基本格式.变量.运算.条件测试这几个方面详细介绍shell脚本编程的基础内容,也是我们必须要掌握熟练的内容. 一.编程环境 1.程序:指令+数据 程序编程的风格有两种: 过程式:以指令为中心,数据服务与指令 对象式:以数据为中心,指令服务于数据 2.程序的执行方式: □计算机:只能识别二进制文件

Shell脚本编程与sed,awk工具的使用--9月15日课程作业

一.shell程序的运行原理 1.脚本 脚本或程序源文件是一种文本文件,将文本文件转换成机器指令有两种转换方式: 编译执行:预处理-->编译-->汇编-->链接:事先完成,结果:二进制程序文件 例如:C, C++ 解释执行:由解释器全程参与运行过程,每次读取一行,运行一行: 例如:  Python:程序控制结构,调用编程库完成程序编写: 库文件:功能模块,在编程中可调用: Bash:调用机器上命令程序文件进行程序编写: 外部命令:各应用程序提供: 2.原理 当shell运行一个程序时,会

Linux生产服务器Shell脚本分享

Linux生产服务器Shell脚本分享 2012-6-6 86市场网 linux 作为一名Linux/unix系统管理员,我经常遇到人问这个问题:shell能做什么?PHP这么强大,为什么不用PHP来完成工作呢?其实相对于PHP这些开发语言而言,shell主要用于数据库备份(SVN备份).计划任务(crontab).服务状态监控.FTP远程备份等.对于这些任务,shell的强大是大家都公认的,这也是每一个Linux/unix系统管理员的基本之一.现在在Windows 2008里也出现了Power

linux下shell脚本执行jar文件

最近在搞一个shell脚本启动jar文件个关闭jar文件的东东.搞得我都蛋疼了.今天晚上终于弄好了 话说,小弟的linux只是刚入门,经过各方查资料终于搞定了.话不多说,下面开始上小弟写的shell脚本 上面是小弟写的shell脚本.写的不好请见谅. 首先遇到的第一个坑 我在window下写的 然后道linux中执行,在linux死活都说俺的19行有错误,俺就不明白了,哪里有错,问了下别人,也说没错.突然有个高人问我在哪编写的,小弟回答在win下,他告诉俺执行下这个命令: dos2unix se