自己在工作中用到的shell知识总结:
1. 变量
声明:
declare -ar ARRAYNAME
declare -r STRING="I think this gay must be crazy !"
-a 数组
-r 只读
$n $1 表示第一个参数,$2 表示第二个参数 ...
$# 命令行参数的个数
$0 当前程序的名称
$? 前一个命令或函数的返回码
$* 以"参数1 参数2 ... " 形式保存所有参数
$@ 以"参数1" "参数2" ... 形式保存所有参数
$$ 本程序的(进程ID号)PID
$! 上一个命令的PID
2. 数组
declare -a ARRAYNAME
ARRAY=(value1 value2 ... valueN) //数组赋值,各成员之间用 “空格” 分隔
如果没有定义索引号,默认是从0开始
i=5
ARRAYNAME[0]="bitch" //数组 赋值
ARRAYNAME["$i"]="son" //数组 赋值
$ARRAYNAME[0] //第一个元素的值
count="${#ARRAYNAME[@]}" //获取数据成员的个数 //数组的长度
count="${#ARRAYNAME
}" //获取数据成员的个数 //数组的长度
${#ARRAYNAME[3]} //第四个元素的长度
${ARRAYNAME[@]} //数组的全部元素
unset ARRAYNAME //删除数组变量,实际上是将ARRAYNAME的值赋空值
使用循环读出数组中的内容:
print_arr(){
count= "${#array[@]}" //数组的长度
i=0
while [ i -lt $count ]
do
tmp="$array["$i"]"
echo "$tmp"
let i++ //i 加1,确保退出循环的条件
}
3. 逐行读取文件中并去除每行中需求的部分,并且放在数组中
方法一:
readfile(){
#$1参数是传入的file的路径
file=$1
count=0
while read line
do
#分析每行,获取有用的部分,awk使用separator作为分隔符,将字符串
#分隔成几部分,这里我们获取第二部分,注意:引号的使用,单引号,
#双引号
tmp=`echo "$line" | awk -F'separator' '{print $2}'`
#消除两边的空格
tmp=`echo "$tmp" | sed -e 's/^ *//' -e 's/ *$//'`
if [ "$tmp" != "" ]
then
ARR["$count"]="$tmp"
let count++
fi
done < "$file"
#读取$file 中的内容
}
方法二:
cat "file" | while read line
do
echo $line
done
4. case 嵌套(相当重要的分号,嵌套时不要忘了)
例子:
case "$char" in
a)
case "$num" in
1|2|3|4|5) ##另一种写法,很好
echo "$num"
;;
0)
echo "error"
;;
esac ##不要忘记了
;; ## 相当重要的分号,嵌套时不要忘了
b)
case "$string" in
ni|wo|ta)
echo "do something"
;;
other)
echo "do something"
;;
esac ##不要忘记了
;; ##不要忘记了
*)
echo “do something ”
;;[color=blue][/color]
esac
5.格式化输出,很笨的方法
format_print (){
printf %7s "$1"
printf %8s "$2"
printf %-s " "
printf %-s "$3"
echo ""
}
数字代表 所占用的宽度,s表示字符(还有其他的自己找资料),,默认是右对齐,“-”表示右对齐,不足用空格表示,printf命令是不换行的,手工添加换行
6.函数
##定义
f(){
name=$1 //传参数
age=$2
echo“do something ”
}
##调用
f “leo” 23 ##参数之间用空格隔开
7.其他
调用外部命令获取其返回值
value=`pwd`
value=$(pwd)
string=$(cat file)
文件开头第一行
#!/bin/sh
分享到:
相关推荐
### Shell编程小结 在IT领域,特别是操作系统与脚本编程方面,Shell占据了举足轻重的地位。Shell作为用户与操作系统之间沟通的桥梁,在UNIX和Linux系统中扮演着核心角色。本文将深入探讨Shell编程的基础知识、核心...
第十五章 小结 第四部分 基础SHELL编程 第十六章 SHELL脚本介绍 第十七章 条件测试 第十八章 控制流结构 第十九章 SHELL函数 第二十章 向脚本传递参数 第二一章 创建屏幕输出 第二二章 创建屏幕输入 第二三...
第四部分 基础shell编程 第16章 shell脚本介绍 151 16.1 使用shell脚本的原因 151 16.2 脚本内容 151 16.3 运行一段脚本 152 16.4 小结 153 第17章 条件测试 154 17.1 测试文件状态 154 17.2 测试时使用逻辑操作符 ...
第十五章 小结 第四部分 基础SHELL编程 第十六章 SHELL脚本介绍 第十七章 条件测试 第十八章 控制流结构 第十九章 SHELL函数 第二十章 向脚本传递参数 第二一章 创建屏幕输出 第二二章 创建屏幕输入 第二三章 调试...
shell编程命令详解 shell编程是 Linux 和 Unix ...六、小结 shell 编程命令是 Linux 和 Unix 操作系统中一种强大的编程语言,通过学习 shell 编程命令,可以编写脚本以自动执行各种任务,提高工作效率和自动化程度。
第四部分 基础shell编程 第16章 shell脚本介绍 151 16.1 使用shell脚本的原因 151 16.2 脚本内容 151 16.3 运行一段脚本 152 16.4 小结 153 第17章 条件测试 154 17.1 测试文件状态 154 17.2 测试时使用逻辑操作符 ...
本书共分五部分,详细介绍了shell编程技巧,各种UNIX命令及语法,还涉及了UNIX下的文字处理以及少量的系统管理问题。本书内容全面、文字简洁流畅,适合Shell编程人员学习、参考。 目 录 译者序 前言 第一部分 shell ...
#### 实验小结 通过此次实验,不仅学习了如何创建和运行Shell脚本,还深入了解了Bash的控制结构,包括条件语句、循环语句等。同时,也掌握了如何使用Shell编程解决实际问题,为后续深入学习Linux系统打下了良好的...
本书共分五部分,详细介绍了shell编程技巧,各种UNIX命令及语法,还涉及了UNIX下的文字处理以及少量的系统管理问题。本书内容全面、文字简洁流畅,适合Shell编程人员学习、参考。 目 录 译者序 前言 第一部分 shell...
本书共分五部分,详细介绍了shell编程技巧,各种UNIX命令及语法,还涉及了UNIX下的文字处理以及少量的系统管理问题。本书内容全面、文字简洁流畅,适合Shell编程人员学习、参考。 目 录 译者序 前言 第一部分 shell...
本书共分五部分,详细介绍了shell编程技巧,各种UNIX命令及语法,还涉及了UNIX下的文字处理以及少量的系统管理问题。本书内容全面、文字简洁流畅,适合Shell编程人员学习、参考。 目 录 译者序 前言 第一部分 ...
#### 四、小结 通过本文的学习,读者可以了解到Linux环境下Shell编程的基本概念和常用命令,掌握了这些基本技能之后,可以在日常工作中更高效地完成各种任务。同时,对于更复杂的Shell脚本编写也有了一定的基础。...
第十五章 小结 第四部分 基础SHELL编程 第十六章 SHELL脚本介绍 第十七章 条件测试 第十八章 控制流结构 第十九章 SHELL函数 第二十章 向脚本传递参数 第二一章 创建屏幕输出 第二二章 创建屏幕输入 第二三章 调试...
### 小结 通过上述知识点的学习,我们可以了解到Bourne Shell不仅是Unix系统中的命令解释器,也是一种强大的脚本语言。掌握其基础语法和高级功能可以帮助我们更高效地管理Unix系统,实现自动化任务处理。
一、Gnu Linux shell 截取字符变量的前8位,有方法如下: 1.expr substr “$a” 1 8 2.echo $a|awk ‘{print substr(,1,8)}’ 3.echo $a|cut -c1-8 4.echo $ 5.expr $a : ‘\(.\\).*’ 6.echo $a|dd bs=1 count=8 2>...
第十五章 小结 第四部分 基础SHELL编程 第十六章 SHELL脚本介绍 第十七章 条件测试 第十八章 控制流结构 第十九章 SHELL函数 第二十章 向脚本传递参数 第二一章 创建屏幕输出 第二二章 创建屏幕输入 第二三章 调试...
linux shell编程 教程大全 目 录 译者序 前言 第一部分 shell 第1章 文件安全与权限 1 1.1 文件 1 1.2 文件类型 2 1.3 权限 2 1.4 改变权限位 4 1.4.1 符号模式 4 1.4.2 chmod命令举例 5 1.4.3 绝对模式 5 1.4.4 ...
#### 小结 通过以上介绍可以看出,正则表达式在Shell编程中有着广泛的应用,无论是简单还是复杂的文本处理任务,都能通过合理构建正则表达式来高效解决。掌握好正则表达式的基本语法和高级用法,能够极大地提高...
在Linux和Unix系统中,Shell编程是系统管理与自动化任务的核心技能之一。本章专注于讲解如何有效地使用引号来避免解释器错误,确保脚本的正确执行。引号的使用对于保护变量、字符串和命令的完整性至关重要。 首先,...