linux自学笔记--bash数据类型、循环和函数

1.可遍历数据类型

列表:

(1){1..10}

(2)$(seq 1 10),$(seq 1 2 10)

(3)cat等命令返回值

(4)globbing匹配值,/etc/*

数组:

(1)声明:

declare -a age=(0 1 2)声明索引数组,不声明默认为索引数组

declare -A user=([name]=a [age]=10)声明关联数组,不声明  无法正常获取值

(2)赋值:使用索引或key直接赋值,索引数组还可嵌套列表赋值  num= ($(seq 1 2 10))

(3)引用:${age[0]},${user[name]},${age[*]}引用全部值

(4)长度:${#age[*]}

(5)追加:索引数组可写为${age[${#age[*]}]}=3

(6)切片:${age[*]:起始索引值:取值个数}

2.循环

for:

(1)for i in {1..10};do

...

done

(2)for ((i=1;i<=10;i++));do

...

done

while:

(1)while true;do

...

done

(2)while read i;do  //特殊用法,读取文件每行

echo $i

done</path/file

3.函数

(1)声明: function fn(){}

(2)调用: fn

(3)传参数和获取参数:fn agrs,用$1..$n在函数中获取

时间: 2024-12-24 13:53:09

linux自学笔记--bash数据类型、循环和函数的相关文章

linux自学笔记--bash特性

bash特性 1.{}和() {}:类似集合,mkdir -p ./test/{a,b} copy /etc/passwd{,.bak} ():引用命令的执行结果,mkdir $(date) 2.执行结果判断 echo $? 成功:0 失败:1~255 3.常用快捷键 ctrl+l:清屏 ctrl+a:光标跳转行首 ctrl+e:光标跳转行尾 ctrl+u:删除光标之前 ctrl+k:删除光标之后 ESC+.:输出上次所执行的对象 4.globbing通配机制 *:匹配任意长度任意字符 ?:匹配

Linux自学笔记——Bash脚本之数组以及内置字符串处理

数组: 程序=指令+数据 指令:command 数据:变量.文件 变量:存储单个元素的内存空间: 数组:存储多个元素的连续的内存空间: 数组名:整个数组只有一个名字: 数组索引:编号从0开始: 数组 名[索引], ${ARRAY_NAME[INDEX]} 注意:bash-4及以后的版本,支持自定义 索引格式,而不仅仅是0,1,2,-数字格式:此类数组称为关联数组 声明数组: declare–a NAME:声明索引数组: declare–A NAME:声明关联数组: 数组中的元素的赋值方式: 1)

Linux基础之bash脚本进阶篇-函数

函数,什么是函数? 函数的出现最初是在数学中,它的数学定义如下:在某变化过程中有两个变量x,y,按照某个对应法则,对于给定的x,有唯一确定的值y与之对应,那么y就叫做x的函数. 而在计算机中函数的内涵发生了一些变化. 在编程中,为了简化代码量,通常会将经常调用的一些代码模块化,并一一个名字表示,当再次使用该模块时只需要输入该名字,系统会自动去读取该名字所对应的代码模块.因此在计算机中把一段独立功能的代码当做一个整体,并为之命一个名字,命名的代码段即为函数. 虽然此函数非彼函数但函数最本质的意义并

Linux自学笔记(7):bash基础特性及基础命令

bash的基础特性(1)命令历史history调用上一条命令的最后一个参数!$ESC,.atl+.控制命令历史的记录方式环境变量:HISTCONTROLignoreedups:忽略重复的命令:连续且相同为"重复"ignorespace:忽略所有以空白开头的命令ignoreboth:ignoreedups,ignorespace 修改环境变量的方式:export 变量名为"值"变量赋值:把赋值符号后面的数据存储于变量名指向内存空间:(2)命令补全bash执行命令:内部

Linux自学笔记——shell脚本编程

脚本文件格式: 第一行,顶格:#!/bin/bash 注释信息:# 代码注释: 缩进,适度添加空白行 语言:编程语法格式,库,算法和数据结构: 编程思想: 问题空间 à解空间 变量: 局部变量 本地变量 环境变量 位置参数变量 特殊变量 数据类型:字符型.数值型 弱类型:字符型: Bash中的算术运算: +,-,*,/,%,** 实现算术运算: 1)let var=算术表达式: 2)var=$[算术表达式] 3)var=$((算术表达式)) 4)var=$(expr arg1 arg2 arg3

Linux自学笔记——Centos启动流程

Centos启动流程大概为:POST --> Boot Sequence(BIOS)--> Boot Loader (MBR) --> Kernel(ramdisk) --> rootfs (readonly)-->switchroot --> /sbin/init -->(/etc/inittab, /etc/init/*.conf) --> 设定默认运行级别 --> 系统初始化脚本 --> 关闭或启动对应级别下的服务 --> 启动终端.

Linux自学笔记——计算机基础以及命令帮助的获取

计算机基础知识: 计算机的主要组成部分: 运算器.控制器.存储器.输入设备.输出设备 CPU:运算器,控制器 bus:总线 memory: 编址存储设备 IO:与外部部件交互 程序的运行模式: 用户空间:user space,us 内核空间:system space POS:Portable OperationSystem POSIX API:编程接口: 运行程序格式: Windows:EXE,dll(dynamic link library) Linux:ELF,so(shared objec

Linux自学笔记——grub应用

GRUB(Boot Loader) GRUB,GRand Unified Bootlader ,是一个来自GUN项目的多操作系统启动程序.GRUB是多启动规范的实现,它允许用户可以在计算机内同时拥有多个操作系统,并在计算机启动时选择希望运行的操作系统.GRUB可用于选择操作系统分区上的不同内核,也可用于向这些内核传递启动参数. grub版本: grub 0.x:grub(legacy) centos 5,6 grub 1.x:grub2              centos 7 grubleg

Linux自学笔记——Linux周期性计划任务

未来的某时间点执行一次任务:at,batch 周期性运行某任务:crontab 执行结果:会通过邮件形式发送给用户: 本地邮件服务: smtp:simple mail transmission protocol: pop3:post office procotol: imap4:internet mail access procotol: mail命令: mailx - send and receive Internet mail: MUA:mail user agent,用户收发邮件的工具程序