概述
1. 程序必须以下面的行开始:
#!/bin/bash
符号#!用来告诉系统它后面的参数是用来执行该文件的程序。在这个例子中我们使用/bin/sh来执行程序。(可以运行echo $SHELL来看你的系统是使用那一类shell, 比如ubuntu使用的是/bin/bash,则第一行写成#!/bin/bash)
2.使用#来添加注释
3.对变量进行赋值:
#对变量赋值(注意等号前后不能有空格,因为加空格后a被认为是命令名而不是一个变量):
a="hello world"
# 现在打印变量a的内容:
echo "A is:"
echo $a
#可以使用花括号来告诉shell我们要打印的是num变量:
num=2
echo "this is the ${num}nd"
这将打印: this is the 2nd
let num=num+1
echo $num
打印: 3
4.grep 'pattern' file: 在文件内搜索字符串比如:grep 'searchstring' file.txt
5.贩毒案斜线(`)
反短斜线
使用反短斜线( ` )可以将一个命令的输出作为另外一个命令的一个命令行参数。
6.if条件语句
#!/bin/sh
if [ "$SHELL" = "/bin/bash" ]; then
echo "your login shell is the bash (bourne again shell)"
else
echo "your login shell is not bash but $SHELL"
fi
7.快捷操作符
[ -f "/etc/shadow" ] && echo "This computer uses shadow passwords"
这里 && 就是一个快捷操作符,如果左边的表达式为真则执行右边的语句。
8.local
作用:一般用于shell内局部变量的定义,多使用在函数内部
关于局部变量和全局变量:
(1)shell 脚本中定义的变量是global的,作用域从被定义的地方开始,一直到shell结束或者被显示删除的地方为止。
(2)shell函数定义的变量也是global的,其作用域从 函数被调用执行变量的地方 开始,到shell或结束或者显示删除为止。函数定义的变量可以是local的,其作用域局限于函数内部。但是函数的参数是local的。
(3)如果局部变量和全局变量名字相同,那么在这个函数内部,会使用局部变量。
9.echo 命令
-n 不换行输出
10.seq命令
产生从某个数到另外一个数之间的所有整数
11.rm rf *
删除当前目录下所有的文件,一般情况下用不到这个命令,这个命令非常危险,删除后不能恢复。
12.xargs 命令
给命令传递参数的一个过滤器
13.find命令
find [查找目录] [参数] [匹配模式][参数][匹配模式]
例如:
find . -name "*.sh" 查找在当前目录(及子目录)下以sh结尾的文件;
-type 是find命令的一个参数:
-type:查找某一类型文档
b:块设备文档
d:目录
c:字符设备文档
P:管道文档
l:符号链接文档
f:普通文档
14.linux 三剑客:grep,awk,sed
grep 查找;
awk数据分析并生成文本
Linux sed 命令是利用脚本来处理文本文件。
sed 可依照脚本的指令来处理、编辑文本文件。
Sed 主要用来自动编辑一个或多个文件、简化对文件的反复操作、编写转换程序等。
15.while read line
do
...
done < file
read通过输入重定向,把file的第一行所有的内容赋值给变量line,循环体内的命令一般包含对变量line的处理;然后循环处理file的第二行、第三行。。。一直到file的最后一行。还记得while根据其后的命令退出状态来判断是否执行循环体吗?是的,read命令也有退出状态,当它从文件file中读到内容时,退出状态为0,循环继续惊醒;当read从文件中读完最后一行后,下次便没有内容可读了,此时read的退出状态为非0,所以循环才会退出。
16.cut
使用特定的规则切分文件内容并显示出来,命令格式cut file "m,n"
。
-b
:根据字节选取内容。-n
:和-b
连用,不区分多字节边界。-c
:根据字符选取内容。-d
:自定义分隔符,默认是t
。-f
:以字段为单位,一个字段即使一个单词,单词以-d
选项设置的作为边界。
链接:https://www.jianshu.com/p/c3ad464281e2
最后
以上就是懵懂白开水为你收集整理的ubuntu shell编程基础的全部内容,希望文章能够帮你解决ubuntu shell编程基础所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复