shell脚本编写3

简介:

字符串的处理: ${:截取 /替换 #掐头 % 去尾}
字符串的截取的三种处理方法:
方法一:(注:从左开始第一位是以0开始)
${}
格式${取用的变量名:起始位数:长度}
例: x=1234567890
echo ${x:1:3} (输出是234)

${x::6}默认不写是从第一位开始截取

方法二:(注:从左开始第一位是以1开始)

expr substr “$取用的变量名” 起始位置的值 长度
例: expr subdtr “$x” 1 3 (输出为123)

方法三:(注:从左开始第一位是以1开始)

echo $取用的变量的名 | cut -b 起始位置-结束位置
echo $取用的变量的名 | cut -b 3,4,5,7,9
例: echo $x | cut -b 3,5 (输出为35)
echo $x | cut -b 1-3 (输出为123)

字符串的替换:/
<vim编辑器中>:%s/旧的内容/新的内容/g (vim中%操作对每一行都执行,g对行的 每一个都执行)

echo ${x/3/} (只更换x中的第一个3)显示出的数值时3换为但是x的值不变
echo ${x//3/} (更换x中的所有3)显示出的数值时3换为但是x的值不变
echo ${x/[1-4]/*}(支持[ ] 更换连续的)

字符串的掐头去尾:%去尾(从右往左删)... #掐头(从左往又删)##(一个#删除最短 2个#删除所有)
${取用的变量的名%#关键词}
例:[root@B ~]# x=head -1 /etc/passwd
[root@B ~]# echo $x
root:x:0:0:root:/root:/bin/bash
root:x:0:0:root:/root:/bin/bash
[root@B ~]# echo ${x#root:}
x:0:0:root:/root:/bin/bash
[root@B ~]# echo ${x#:}
x:0:0:root:/root:/bin/bash
[root@B ~]# echo ${x##
:}
/bin/bash

touch {a,b,c,d,e,f}.txt
#!/bin/bash
for i in ls *.txt
do
mv $i ${i%.txt}.doc 
done

计算1-100所有偶数的和
#!/bin/bash
num=0
for i in {1..100}
do
a=$[i%2]
if [ $a -eq 0 ];then
let num=$num+$i
fi
done
echo $num
~

字符串赋初值: ( :- )
echo ${XX:-123}

例:

#!/bin/bash
read -p "请输入用户名:" name
if [ -z $name ]; then
echo "必须输入用户名"
exit
fi
read -p "请输入密码:" pass
pass=${pass:-123}
useradd "$name"
echo "$pass" | passwd --stdin "$name"

提示用户输入一个数:计算1到改数字的和,如果不输入则输出1-100的值
#!/bin/bash
read -p "请输入一个数字:" num
a=${num:-100}
b=0
for i in seq $a
do
let b=$b+$i
done
echo $b

数组:(一个变量,存放多个值)(从左往右以第0位开始)
a=(11 22 33 aa bb cc)定义并赋值
等同于
a[0]=11
a[1]=22
a[2]=33
a[3]=aa
a[4]=bb
a[5]=cc
echo ${a[0]} 输出为11 (取的是第一个值)
echo ${a[*]} 输出为所有的a的值










本文转自 英强云计算 51CTO博客,原文链接:http://blog.51cto.com/13404755/2050388,如需转载请自行联系原作者
目录
相关文章
|
7月前
|
关系型数据库 MySQL Shell
MySQL 备份 Shell 脚本:支持远程同步与阿里云 OSS 备份
一款自动化 MySQL 备份 Shell 脚本,支持本地存储、远程服务器同步(SSH+rsync)、阿里云 OSS 备份,并自动清理过期备份。适用于数据库管理员和开发者,帮助确保数据安全。
|
5月前
|
存储 Unix Shell
确定Shell脚本在操作系统中的具体位置方法。
这对于掌握Linux的文件系统组织结构和路径方面的理解很有帮助,是我们日常工作和学习中都可能使用到的知识。以上讲解详细清晰,应用简便,是每一个想要精通操作系统的计算机爱好者必备的实用技能。
104 17
|
5月前
|
Linux Shell
Centos或Linux编写一键式Shell脚本删除用户、组指导手册
Centos或Linux编写一键式Shell脚本删除用户、组指导手册
126 4
|
5月前
|
Linux Shell 数据安全/隐私保护
Centos或Linux编写一键式Shell脚本创建用户、组、目录分配权限指导手册
Centos或Linux编写一键式Shell脚本创建用户、组、目录分配权限指导手册
270 3
|
6月前
|
Linux Shell
在Linux、CentOS7中设置shell脚本开机自启动服务
以上就是在CentOS 7中设置shell脚本开机自启动服务的全部步骤。希望这个指南能帮助你更好地管理你的Linux系统。
433 25
|
12月前
|
Shell
一个用于添加/删除定时任务的shell脚本
一个用于添加/删除定时任务的shell脚本
286 1
|
8月前
|
Shell Linux
【linux】Shell脚本中basename和dirname的详细用法教程
本文详细介绍了Linux Shell脚本中 `basename`和 `dirname`命令的用法,包括去除路径信息、去除后缀、批量处理文件名和路径等。同时,通过文件备份和日志文件分离的实践应用,展示了这两个命令在实际脚本中的应用场景。希望本文能帮助您更好地理解和应用 `basename`和 `dirname`命令,提高Shell脚本编写的效率和灵活性。
598 32
|
7月前
|
关系型数据库 Shell 网络安全
定期备份数据库:基于 Shell 脚本的自动化方案
本篇文章分享一个简单的 Shell 脚本,用于定期备份 MySQL 数据库,并自动将备份传输到远程服务器,帮助防止数据丢失。
|
8月前
|
JavaScript Shell C#
多种脚本批量下载 Docker 镜像:Shell、PowerShell、Node.js 和 C#
本项目提供多种脚本(Shell、PowerShell、Node.js 和 C#)用于批量下载 Docker 镜像。配置文件 `docker-images.txt` 列出需要下载的镜像及其标签。各脚本首先检查 Docker 是否安装,接着读取配置文件并逐行处理,跳过空行和注释行,提取镜像名称和标签,调用 `docker pull` 命令下载镜像,并输出下载结果。使用时需创建配置文件并运行相应脚本。C# 版本需安装 .NET 8 runtime。
445 4
|
11月前
|
Shell Linux 测试技术
6种方法打造出色的Shell脚本
6种方法打造出色的Shell脚本
6种方法打造出色的Shell脚本