只需要在变量名前加美元符号 $
your_name = dashuaige
echo $dashuaige
echo ${dashuaige}
变量名外面的花括号是可选的,加不加都行,加花括号是为了帮助解释器识别变量的边界(最好加上,养成好习惯)。
使用 readonly 命令可以将变量定义为只读变量,只读变量的值不能被改变。
使用 unset 命令可以删除变量。语法:
unset variable_name
变量被删除后不能再次使用。unset 命令不能删除只读变量。
str = "abcdefg"
echo ${#str} #输出为7
变量为字符串时,${#string} 等价于 ${#string[0]}
5.1 提取子字符串长度
string = "Nice to meet you!"
echo ${string[1:4]} #提取2到4的字符
5.2 查找子字符串
查找io,哪个字母先出现就先计算哪个
string = "Nice to meet you!"
echo `expr index "$string" io` #输出为1
bash支持一维数组(不支持多维数组),并且没有限定数组的大小。
类似于 C 语言,数组元素的下标由 0 开始编号。获取数组中的元素要利用下标,下标可以是整数或算术表达式,其值应大于或等于 0。
在 Shell 中,用括号来表示数组,数组元素用"空格"符号分割开。
格式为:数组一 = (元素1 元素2 ... ...)or array_name[0]=value0
array_name[0]=value1
... ...
${数组名[下标]}
使用 @ 符号可以获取数组中的所有元素
echo ${array_name[@]}
获取数组长度与获取字符串长度的方法相同。
# 取得数组元素的个数
length=${#array_name[@]}
# 或者
length=${#array_name[*]}
# 取得数组单个元素的长度
length=${#array_name[n]}
#开头为注释
多行注释
:< xxx xxx xxx EOF EOF可以被替换。 我们可以在执行 Shell 脚本时,向脚本传递参数,脚本内获取参数的格式为:$n。n 代表一个数字,1 为执行脚本的第一个参数,2 为执行脚本的第二个参数,以此类推…… 图8.1 处理字符的特殊参数 $* 与 $@ 区别:printf "%.${n}f\n" "$VAR1" 数组中可以存放多个值。Bash Shell 只支持一维数组(不支持多维数组),初始化时不需要定义数组大小(与 PHP 类似)。 与大部分编程语言类似,数组元素的下标由 0 开始。 Shell 数组用括号来表示,元素用"空格"符号分割开,语法格式如下: 问:为什么加引号和不加引号输出的结果相同? 答:引号通常用于保护字符串中的空格或特殊字符,以确保它们被视为一个整体。 Bash 支持关联数组,可以使用任意的字符串、或者整数作为下标来访问数组元素。 关联数组使用 declare 命令来声明,语法格式如下: 例:创建一个关联数组assoc_array,并创建不同的键值 输出结果为: ———————————————————未完待续——————————————————— expr用法: $ expr "abcdef" : '.*' # 输出结果为6(表示字符串长度) $ expr "abcdef" : 'abc' # 输出结果为1(表示字符串匹配成功) $ expr "abcdef" : 'xyz' # 输出结果为0(表示字符串匹配失败) $ expr index "abcdef" "c" # 输出结果为3(表示字符串中第一个字符"c"的位置) $ expr substr "abcdef" 3 2 # 输出结果为"cd"(表示从第3个字符开始截取长度为2的子串) _____________________________________________________________________________学习笔记 1.adduser+用户名 新增用户 2.su - 用户名 切换用户 3.查看组:groups 赋予管理员权限:usermod -aG root + 用户名 4.例:linux下,给/home/test.txt文件赋予"-rw-r-x-wx"权限,所用命令为 chomod /home/test.txt 356 注:'-'代表文件;'rw-'代表用户拥有读写权限;'r-x'代表同组用户拥有读和执行权限;'-wx'代表其他用户拥有写和执行权限。r = 4 ; w = 2 ; x = 1. 5.要在home目录下创建一个以当前日期为名称的文件夹,可以使用以下命令:mkdir $(date +%Y-%m-%d) 6.压缩文件的两种方式: 7.新建文件 vim + 文件名 编辑完成后 shift+:→ wq (保存退出) 8.创建新用户 9.在写脚本时需注意[ ] 与字符之间要有空格,否则会报错。 10.注意图上注释的部分。 ——————————————————————————————————————————— v1.0 第一部分:Shell基础 Shell在计算机科学中,是一种命令行解释器,用于与操作系统进行交互和执行命令。它提供了一种交互式的方式,让用户可以通过命令来操作计算机,执行各种任务和管理系统资源。同时,Shell 脚本是一种使用 Shell 解释器执行的脚本文件,其中包含了一系列的命令和脚本语句。这些脚本可以用于自动化任务、批量处理、系统管理和编程等目的。常见的 Shell 解释器包括 Bash、Zsh、Csh、Ksh 等。 Shell是一种命令行界面和脚本语言,有多种不同的实现和变种。这些不同的Shell可以根据其特性和功能进行分类。以下是一些常见的Shell分类: Bourne Shell (sh) Bash(Bourne-Again Shell) Korn Shell (ksh) C Shell (csh) Zsh(Z Shell) Fish Shell PowerShell 其他Shell 这些不同的Shell具有各自的特点和用途。选择使用哪种Shell取决于你的需求和个人偏好,不同的Shell可以用于不同的任务和工作流程。无论你是系统管理员、开发人员还是普通用户,理解这些Shell的分类和特性都将有助于更有效地使用和编写Shell脚本,最常见的就是Bash,本文主要介绍Bash。 第二部分:Shell脚本编程 5. 编写简单的Shell脚本 第三部分:高级Shell编程 9. 文件操作 第四部分:实际应用和项目 15. 实际项目 —————————————————————分割线————————————————— 先写到这,有时间再补充,太忙了。8.传递参数
9.Shell数组
array_name=(value1 value2 ... valuen)
9.1 读取数组
9.2 关联数组
declare -A array_name
# 定义关联数组
declare -A assoc_array
assoc_array["key1"]="value1"
assoc_array["key2"]="value2"
# 引用关联数组
echo ${assoc_array["key1"]}
echo ${assoc_array["key2"]}
value1
value2
passwd +用户名 修改新用户的密码
(1)使用gzip命令"gzip hello_shell"这将创建一个名为hello_shell.gz的压缩文件,原始文件hello_shell将被替换。
解压:gzip -d hello_shell.gz
(2)"tar -czvf hello_shell.tar.gz hello_shell"这将创建一个名为hello_shell.tar.gz的压缩文件,原始文件hello_shell将被保留。
解压:tar -xzvf hello_shell.tar.gz
adduser -m -g root -p +密码 用户名 -m:-m 是一个选项,用于在创建新用户时同时创建主目录。它表示在系统中创建一个新的主目录,并将其分配给新创建的用户。 -g:分组 groupadd:添加组
crontad -e 定时 →例:0 0 * * * /bin/bash/to/123.sh
shell学习手册编写