
Shell 学习
EMB看灯夜
电子科技大学 控制科学与工程 硕士
寒冬至,金方硕!
展开
-
18-shell 第三方文件库使用(头文件)
#! /bin/bash#Shell 文件包含 (Shell 也可以包含外部脚本, 这样可以很方便的封装一些公用的代码作为一个独立的文件):<<! 语法 . filename # 注意点号(.)和文件名中间有一空格 或 source filename # 推荐!source 1-运行方式.sh #类似于头文件,第三方资源使用echo "form 1-运行方式.sh a=$a b=$b"至此本shell教程,就已经圆满结束了!如果觉得教程缝合得还不错..原创 2021-04-18 11:39:18 · 524 阅读 · 0 评论 -
17-linux 的 wc命令
主文件#! /bin/bash#Linux wc命令:<<! 作用:利用wc指令我们可以计算文件的Byte数、字数、或是列数,若不指定文件名称、或是所给予的文件名为"-",则wc指令会从标准输入设备读取数据。 语法: wc [-clw][--help][--version][文件...] 参数: -c或--bytes或--chars 只显示Bytes数。 -l或--lines 显示行数。 -w或--words 只显示字数。 --help 在线帮助。 -.原创 2021-04-18 11:39:06 · 195 阅读 · 0 评论 -
16-shell 输入输出流 重定向控制
主文件#! /bin/bash#Shell 输入/输出流 重定向操作(将标准输入和输出从终端,重定向至目标文件):<<!命令 说明command > file 将输出重定向到 file,执行command然后将输出的内容存入file。command < file 将输入重定向到 file,本来需要从键盘获取输入的命令会转移到文件读取内容。command >> file 将输出以追加的方式(不删除文件原有的内容) 重定向到 file。n .原创 2021-04-18 11:38:57 · 300 阅读 · 0 评论 -
15-linux 的 cat命令
主文件#! /bin/bash# Linux cat 命令:<<!语法格式 cat [-AbeEnstTuv] [--help] [--version] fileName -n 或 --number:由 1 开始对所有输出的行数编号。 -b 或 --number-nonblank:和 -n 相似,只不过对于空白行不编号。 -s 或 --squeeze-blank:当遇到有连续两行以上的空白行,就代换为一行的空白行。 -v 或 --show-nonprintin原创 2021-04-18 11:38:48 · 160 阅读 · 0 评论 -
14-Shell函数使用
#! /bin/bash#Shell 函数#格式:<<! function funname () { action; return int } 1、可以带function fun() 定义,也可以直接fun() 定义,不带任何参数。 2、参数返回,可以显示加:return 返回,如果不加,将以最后一条命令运行结果,作为返回值。 return后跟数值n(0-255!:<<! 参数处理 说明 $# 传递到脚本或函数的参数个数.原创 2021-04-18 11:38:38 · 90 阅读 · 0 评论 -
13-shell read窗口输入
#! /bin/bash#Shell中read的选项及用法 https://blog.youkuaiyun.com/guominyou/article/details/80923734:<<!-a 将终端内容读入到指定数值中-d 读入到指定字母后再停止-n 用于限定最多可以有多少字符可以作为有效读入-p 输入提示文字-s 隐藏输入内容-t 输入限时!read -a arrayecho "-a " $array "length = $(expr length $arr.原创 2021-04-18 11:38:26 · 256 阅读 · 0 评论 -
12-Shell 数据执行结构
#! /bin/bash#Shell 数据执行结构(流程控制)#条件结构 if [[ ]] then ..... else.....fia=2b=1echo $aif [[ $a > $b ]]; then echo "true"; fi#连续条件结构 if [[ ]] then ...elif[[ ]] then... else.....fiif [[ $a < $b ]]then echo "if"elif [[ $a > $b ]] then .原创 2021-04-18 11:38:13 · 167 阅读 · 0 评论 -
11-shell test文件匹配
#! /bin/bash#Shell test 命令 (Shell中的 test 命令用于检查某个条件是否成立,它可以进行数值、字符和文件三个方面的测试)#数值测试:<<!参数 说明-eq 等于则为真-ne 不等于则为真-gt 大于则为真-lt 小于则为真-ge 大于等于则为真-le 小于等于则为真!a=11 b=11if test $[a] -eq $[b]then echo '两个数相等!'else echo '两个数不相等!'fia.原创 2021-04-18 11:37:55 · 261 阅读 · 0 评论 -
10-shell printf使用
#! /bin/bash#Shell printf 命令使用:<<!printf 由 POSIX 标准所定义,因此使用 printf 的脚本比使用 echo 移植性好。printf 命令的语法:printf format-string [arguments...]%s %c %d %f 都是格式替代符,%s 输出一个字符串,%d 整型输出,%c 输出一个字符,%f 输出实数,以小数形式输出。 %-4.2f 指格式化为小数,其中 4指4位整数 .2 指保留2位小.原创 2021-04-18 11:37:39 · 217 阅读 · 0 评论 -
9-shell echo命令使用
主文件#! /bin/bash#Shell echo命令#显示普通字符串echo "It is a test"#显示转义字符echo "\"It is a test\""#显示变量a="long"echo "$a It is a test"#显示换行echo -e "OK! \n" # -e 开启转义#显示不换行echo -e "OK! \c" # -e 开启转义 \c 不换行echo "It is a test"#echo -n 不换行输出echo -n "原创 2021-04-17 22:07:23 · 153 阅读 · 0 评论 -
8-shell基本运算符使用
#! /bin/bash#Shell 基本运算符 <- expr使用:<<![] 表达式注意:在 [] 表达式中,常见的 >, < 需要加转义字符,表示字符串大小比较,以 acill 码位置作为比较。不直接支持 >, < 运算符,还有逻辑运算符 || 、&& ,它需要用 -a[and] –o[or] 表示。[[ ]] 表达式注意:[[]] 运算符只是 [] 运算符的扩充。能够支持 >, < 符号运算不需要转义符,它还.原创 2021-04-17 22:04:08 · 137 阅读 · 0 评论 -
7-awk文件匹配读取
主文件#! /bin/bash#awk 文本读取和匹配#https://blog.youkuaiyun.com/wdz306ling/article/details/80383824# 语法格式:awk [选项] '指令' 操作文件# -F 指定分隔符,分隔符用 "" 引起来# -v:var=value在awk程序开始之前指定一个值valu给变量var,这些变量值用于awk程序的BEGIN快# -f:后面跟一个保存了awk程序的文件,代替在命令行指定awk程序#读文件awk '原创 2021-04-17 22:01:24 · 456 阅读 · 0 评论 -
6-Shell参数传递
#!/bin/bash#Shell 传递参数使用# $file 为执行的文件名(包含文件路径):./6-test.sh 0 1 hao # 给文件5输入三个键入参数:<<!参数处理 说明$# 传递到脚本的参数个数$* 以一个单字符串显示所有向脚本传递的参数。如"$*"用「"」括起来的情况、以"$1 $2 … $n"的形式输出所有参数。$$ 脚本运行的当前进程ID号$! 后台运行的最后一个进程的ID号$@ 与$*相同,但是使用时加引号,并在引号中返回每个参数。.原创 2021-04-17 21:56:53 · 259 阅读 · 0 评论 -
5-shell数组的使用
#! /bin/bash#Shell 数组#bash支持一维数组(不支持多维数组),并且没有限定数组的大小。#定义数组a=(1 2 3 4)b=(3.2 -1.3 6 8)c=(Iamagreatboy)echo -e ${a[2]} ${b[@]} # [@] 表示所有成员echo -e "${c[3]}\n"#获取数组的长度length1=${#c[@]} #length=${#array_name[*]}# 取得数组单个元素的长度length2=${#c[3].原创 2021-04-17 21:55:21 · 79 阅读 · 0 评论 -
4-shell文件路径处理
#! /bin/bash#文件路径的控制处理:<<!记忆的方法为:# 是 去掉左边(键盘上#在 $ 的左边)%是去掉右边(键盘上% 在$ 的右边)单一符号是最小匹配;两个符号是最大匹配${file:0:5}:提取最左边的 5 个字节:/dir1${file:5:5}:提取第 5 个字节右边的连续5个字节:/dir2!:<<!${var%pattern},${var%%pattern} 从右边开始匹配${var#pattern},${var##patter.原创 2021-04-17 21:54:24 · 643 阅读 · 0 评论 -
3-shell字符串处理
#! /bin/bash#字符串是shell编程中最常用最有用的数据类型(除了数字和字符串,也没啥其它类型好用了),#字符串可以用单引号,也可以用双引号,也可以不用引号。#字符串表示str1='Bob 1' #单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的;str2="Hello, I know you are ${str1}! \n" echo $str2str3="Hello, I know you are \"$str1\"! \n"#echo -e 使反斜杠生效,.原创 2021-04-17 21:52:35 · 142 阅读 · 0 评论 -
2-变量产生删除
#!/bin/bash#定义变量时,变量名不加美元符号. 变量名和等号之间不能有空格. 首个字符不能以数字开头。#变量: 显式赋值your_name="Duwentao" #打印中识别变量加 {}#使用变量的时候才加美元符$echo ${your_name}echo "My name is ${your_name} !"#设置只读变量readonly my_Url="https://www.baidu.com"#删除变量 (变量被删除后不能再次使用。unset 命令不能删除只.原创 2021-04-17 21:51:19 · 152 阅读 · 0 评论 -
1-shell运行方式
准备工作先运行cd ~sudo mkdir ./My_ShellLearning cd ./My_ShellLearning第一课:<<!人们并不区分 Bourne Shell 和 Bourne Again Shell,所以,像 #!/bin/sh,它同样也可以改为 #!/bin/bash! 告诉系统其后路径所指定的程序即是解释此脚本文件的 Shell 程序。!:<<!chmod +x ./test.sh #使脚本具有执行权限运行方法一:(..原创 2021-04-17 21:49:58 · 97 阅读 · 0 评论 -
0-shell脚本学习理由
问题-痛点如果你不想一个个在linux终端敲命令等待。。。敲命令等待。。。。如果怒还在忍受打开多个终端运行不同的 .launch文件,终端霸屏.....作用-抽象叙述Shell就是命令行工具的胶水,没有任何语言能像Shell一样方便地将一大堆命令行工具组合起来。原则上来说,Shell做什么都可以,但显然它最适合的是自动化,因为只需要将你原来手动敲的命令都复制到一个文件里面就行了。其他开始学习shell,也开始做大佬好像也不错?—————以下教程有本人负责整理,多是搬...原创 2021-04-17 21:40:03 · 107 阅读 · 0 评论