shell脚本编写3

news/2025/2/23 22:12:17

字符串的处理: ${:截取 /替换 #掐头 % 去尾}
字符串的截取的三种处理方法:
方法一:(注:从左开始第一位是以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,如需转载请自行联系原作者

http://www.niftyadmin.cn/n/710494.html

相关文章

linux shell 中21含义-完美理解-费元星

笨鸟先飞&#xff0c;先理解。 脚本是: nohup /mnt/Nand3/H2000G >/dev/null 2>&1 & 对于& 1 更准确的说应该是文件描述符 1,而1 一般代表的就是STDOUT_FILENO,实际上这个操作就是一个dup2(2)调用.他标准输出到all_result ,然后复制标准输出到文…

35 最大值

35 最大值 作者: frankhuhu时间限制: 10S章节: 一维数组 emmm…明明和他爸可真是热爱数学呀&#xff01;&#xff01;&#xff01; 问题描述 : 为了培养明明对数学的热爱&#xff0c;明明的爸爸经常想出一些简单有趣且富有数学思想的游戏给明明玩。有一次&#xff0c;明明的…

LVS

LVS负载均衡详解工作模式介绍&#xff1a;工作模式是配置在&#xff1a;real server 上1.Virtualserver via NAT&#xff08;VS-NAT&#xff09; -m优点&#xff1a;集群中的物理服务器可以使用任何支持TCP/IP操作系统&#xff0c;物理服务器可以分配Internet的保留私有地址…

使用linux mysql客户端建立表时遇到格式解析的问题

发现在notepad写好的建表脚本&#xff0c;粘贴到linux客户端后&#xff0c;执行时总是报我的脚本有问题。 我看了又看&#xff0c;发现建表脚本本身是没有问题&#xff0c;问题出在"Tab"键上和注释上边了。 解决办法是&#xff0c;将"tab"的换成空格&#…

10个和 Flash 一样的 HTML5 应用演示

大家可能听到很多关于 Flash 是否会被 HTML5 取代的讨论&#xff0c;个人认为&#xff0c;HTML5在某些应用场合有其更先进的地方&#xff0c;会慢慢取代 Flash&#xff0c;但是无法被完全取代&#xff0c;Flash 永远会占有一席之地。 如果你想知道 HTML5 能做些什么&#xff0c…

pyhthon 处理pdf 合集

查永春的CSDN博客 https://blog.csdn.net/zyc121561/column/info/25026 提取指定的PDF表格保存到Excel Python提取PDF内容&#xff08;文本、图像、线条等&#xff09; 提取PDF内容保存到Excel--Python实现 PDF内容替换--Python实现 提取PDF关键字并写入Excel Python提取PDF电…

31 最高频率

31 最高频率 作者: 朱凯时间限制: 10S章节: 一维数组 问题描述 : 明明的爸爸是一位著名的数学家。他在明明很小的时候就发现明明有过人的数学天赋&#xff0c;因此有意培养他对数学的兴趣。一次&#xff0c;明明的爸爸和明明玩起了一个数字游戏&#xff0c;这个游戏的名字叫…

正则表达式-2015.8.27作业

1.grep命令1.1 grep [OPTIONS] PATTERN [FILE...]&#xff1a;参数&#xff1a;--colorauto&#xff1a;对匹配到的字符做高亮显示&#xff1b;-v&#xff1a;显示模式匹配不到行&#xff1b;-i: 忽略字符大小写&#xff1b;-o: 仅显示能够被模式匹配到的串本行&#xff1b;-q:…