我是靠谱客的博主 懵懂白开水,最近开发中收集的这篇文章主要介绍ubuntu shell编程基础,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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编程基础所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(51)

评论列表共有 0 条评论

立即
投稿
返回
顶部