美文网首页
Shell脚本语言基础(三)

Shell脚本语言基础(三)

作者: Jackey_song | 来源:发表于2017-11-30 12:00 被阅读17次

​"-n"使用存在问题?

​​错误代码

​​​val="Hello"

​​​if [ -n $val ]

​​​then

​​​​echo "存在"

​​​else

​​​​echo "不存在"

​​​fi

​​正确代码

​​​val="Hello"

​​​if [ -n "$val" ]

​​​then

​​​​echo "存在"

​​​else

​​​​echo "不存在"

​​​fi

内容一:Shell脚本语言->文件包含?

​语法一:./filename

​​文件A->fileA.sh

​​​脚本内容

​​​​#!/bin/bash

​​​​echo "我是文件A"

​​文件B->fileB.sh

​​​脚本内容

​​​​#!/bin/bash

​​​​#文件B包含文件A

​​​​./fileA.sh

​​​​echo "我是文件B"

​​执行脚本命令

​​​./fileB.sh

​语法二:sourcefilename.sh

​​注意:source是一个关键字

​​文件A->fileA.sh

​​​脚本内容

​​​​#!/bin/bash

​​​​echo "我是文件A"

​​文件B->fileB.sh

​​​脚本内容

​​​​#!/bin/bash

​​​​#文件B包含文件A

​​​​source ./fileA.sh

​​​​echo "我是文件B"

​​执行脚本命令

​​​./fileB.sh

内容二:Shell脚本语言->cat命令->简单介绍->后面还会大量用到

​作用:

​​作用一:查看文件内容

​​作用二:连接文件

​​作用三:创建一个文件或者多个文件

​​作用四:重定向输出到终端

​​作用五:重定向到文件

​语法:cat [选项] [文件]

​​

​案例演示

​​案例一:查看文件内容

​​​cat fileA.sh

​​案例二:cat-nfileA.sh

​​​-n选项:可以显示文件内容和行号

​​案例三:cat -bfileA.sh

​​​-b选项:和"-n"类似功能,但是只标记非空白行行号

​​案例四:cat -efileA.sh

​​​-e选项:在每一行内容最后加入了一个"$"符号,在需要将多行内容转换为一行内容的时候,非常有用(后面脚本学习,不是很多)->自己试一试

​​案例五:cat

​​​接收标准输入,同时还会输出标准输出(敲回车键即可)

​​​退出:control + c

内容三:Shell脚本语言->获取用户输入->read命令

​1、接收一个输入内容

​​写法一

​​​echo "请输入你的名字:"

​​​read name

​​​echo "您的名字是:${name}"

​​写法二

​​​read -p "请输入你的名字:"name

​​​echo "您的名字是:${name}"

​2、超时->输入时候,你过了多少秒没有输入,那么过期

​​计时器

​​if read -t 6 -p "请输入你的名字:"name

​​then

​​​echo "您的名字是:${name}"

​​else

​​​echo

​​​echo "超时"

​​fi

​3、隐藏输入的内容->"-s"->类似于输入密码

​​read -s -p "请输入您密码:" pwd

​​echo "您的密码是:${pwd}"

​4、从文件里面读取内容

​​cat fileB.sh | while read line

​​do

​​​echo "内容:${line}"

​​done

​​下一节课:管道

​​接收输入一行:read name

​​接收输入多行:while read name

内容四:Shell脚本语言->printf命令使用

​1、printf命令和echo命令区别?

​​区别一

​​​printf不会换行

​​​echo自动换行

​​区别二

​​​printf:一般用于格式打印

​​​echo:用于标准输出

​2、printf语法结构

​​printf format-string参数列表

​​

​3、printf案例

​​案例一

​​​

​​​#打印输出表头

​​​printf "%-10s%-8s%-4s \n"姓名性别体重kg

​​​#打印输出内容

​​​printf "%-10s %-8s %-4s \n"Andy男64kg

​​​printf "%-10s%-8s%-4s \n" jar男65kg

​​​printf "%-10s %-8s %-4s \n"帅牛哥男100kg

​​​注意一:"%-10s"指的是一个宽度为10个字符,"-"表示左对齐

​​​​假设:%-4s长度:"AndyAndy"

​​​​s:表示字符串(字符)

​​​注意二:"%-4.2f"指的是一个宽度为4,小数点2位,"f"表示小数

​​​…​

​​​

​​案例二

​​​3.1printfformat-string为双引号

​​​​printf "%d %s \n" 1 "Dream"

​​​3.2printfformat-string为单引号

​​​​printf '%d %s \n' 1 "Dream"

​​​3.3printfformat-string没有号

​​​​错误写法

​​​​printf %d %s 1 "Dream"

​​​​正确写法->指定一个允许的

​​​​printf%d"Dream"

​​​3.4多个参数输出

​​​​printf "%d %s \n" 1 "Dream"

​4、printf转义字符

​​printf " "<%s>" " "Dream"​​

内容五:Shell脚本语言->函数

​1、语法结构

​​[function]方法名称(){

​​​逻辑代码

​​}

​2、案例分析​

​​定义方法

​​​functiontestFunc(){

​​​​echo "Hello world"

​​​}

​​调用方法

​​​echo "调用前"

​​​testFunc

​​​echo "调用后"

​​swift->典型脚本写法

​​​functest(){

​​​}

内容六:Shell脚本语言->输入/输出重定向?

​1、学习->输入/输出重定向->控制台/文件

​​1.1输入重定向->语法

​​​语法结构:wc名称名称

​​​

​​​1.1.1"<":输入重定向

​​​​命令代码:wc fileA.sh​

​​​​将fileA中内容读取到控制台

​​​​wc读取到了三个重要信息

​​​​​第一个参数:文本行数

​​​​​第二个参数:文本词数

​​​​​第三个参数:文本字节数

​​​1.1.2"<<":创建文件

​​​​cat命令

​​1.2输出重定向

​​​1.2.1 ">":我们把方向指向一份文件,那么将文件中的内容删除,写入新的内容

​​​​脚本文件fileA.sh代码

​​​​​#!/bin/bash

​​​​​echo "我是文件A"

​​​​脚本文件fileB.sh代码

​​​​​#!/bin/bash

​​​​​echo "我是文件B"​​​

​​​​​echo "Hello Dream" > fileA.sh​

​​​​执行脚本代码

​​​​​./fileB.sh​

​​​​总结:替换内容->将fileB.sh输出内容替换了fileA.sh中内容

​​​1.2.2 ">>":追加

​​通过脚本语言->操作数据库

​​​​​​

​​​

相关文章

网友评论

      本文标题:Shell脚本语言基础(三)

      本文链接:https://www.haomeiwen.com/subject/zghvbxtx.html