美文网首页
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