Shell脚本语言基础(三)

​"-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 ">>":追加

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

​​​​​​


​​​

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,332评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,508评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,812评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,607评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,728评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,919评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,071评论 3 410
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,802评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,256评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,576评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,712评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,389评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,032评论 3 316
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,798评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,026评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,473评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,606评论 2 350

推荐阅读更多精彩内容