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,如需转载请自行联系原作者
目录
相关文章
|
12天前
|
关系型数据库 MySQL Shell
备份 MySQL 的 shell 脚本(mysqldump版本)
【4月更文挑战第28天】
23 0
|
1天前
|
Unix Shell Linux
轻松编写 AIX Shell 脚本
轻松编写 AIX Shell 脚本
|
2天前
|
监控 关系型数据库 Shell
Shell脚本入门:从基础到实践,轻松掌握Shell编程
Shell脚本入门:从基础到实践,轻松掌握Shell编程
|
2天前
|
关系型数据库 MySQL Shell
在Centos7中利用Shell脚本:实现MySQL的数据备份
在Centos7中利用Shell脚本:实现MySQL的数据备份
|
4天前
|
Shell Linux 编译器
C语言,Linux,静态库编写方法,makefile与shell脚本的关系。
总结:C语言在Linux上编写静态库时,通常会使用Makefile来管理编译和链接过程,以及Shell脚本来自动化构建任务。Makefile包含了编译规则和链接信息,而Shell脚本可以调用Makefile以及其他构建工具来构建项目。这种组合可以大大简化编译和构建过程,使代码更易于维护和分发。
21 5
|
4天前
|
Shell 程序员 数据安全/隐私保护
shell 脚本 if-else判断 和流程控制 (基本语法|基础命令)
shell 脚本 if-else判断 和流程控制 (基本语法|基础命令)
|
4天前
|
存储 Shell C语言
shell脚本 编程 变量 基本入门(详解)
shell脚本 编程 变量 基本入门(详解)
|
5天前
|
Shell Linux 编译器
C语言,Linux,静态库编写方法,makefile与shell脚本的关系。
总结:C语言在Linux上编写静态库时,通常会使用Makefile来管理编译和链接过程,以及Shell脚本来自动化构建任务。Makefile包含了编译规则和链接信息,而Shell脚本可以调用Makefile以及其他构建工具来构建项目。这种组合可以大大简化编译和构建过程,使代码更易于维护和分发。
13 3
|
10天前
|
弹性计算 运维 监控
|
11天前
|
存储 弹性计算 运维
自动化收集员工信息的Shell脚本
【4月更文挑战第30天】
10 0