关闭 x
IT技术网
    技 采 号
    ITJS.cn - 技术改变世界
    • 实用工具
    • 菜鸟教程
    IT采购网 中国存储网 科技号 CIO智库

    IT技术网

    IT采购网
    • 首页
    • 行业资讯
    • 系统运维
      • 操作系统
        • Windows
        • Linux
        • Mac OS
      • 数据库
        • MySQL
        • Oracle
        • SQL Server
      • 网站建设
    • 人工智能
    • 半导体芯片
    • 笔记本电脑
    • 智能手机
    • 智能汽车
    • 编程语言
    IT技术网 - ITJS.CN
    首页 » HTML5 »BASH命令使用方法详解

    BASH命令使用方法详解

    2014-10-24 00:00:00 出处:野性向日葵
    分享

    最近工作中需要写一个Linux脚本,用到了很多BASH命令,为了防止以后忘记,在这里把它们一一记下来。可能会比较乱,随便看看就好了。假如有说的不对的地方也欢迎大家指正。

    1,export VAR=…

    这个命令在Shell下直接运行可以使之后运行的脚本也知道这个VAR。但是假如这个命令在脚本中运行,那么不影响脚本以外的参数。举个例子,假如在一个脚本运行之前没有 VAR这个环境变量,而在脚本中运行了 export VAR=3 这一命令,那么在脚本结束之后,假如运行 echo $VAR,不会有任何显示。说明export仅在脚本中有效。

    2,if … ; then …; else …; fi

    可以把判断写在不同行,这样就不需要“;”号了。if后面跟[],中括号里面是表达式,表达式与中括号的首尾都需要留一个空格。一个例子来判断VAR为空:

    if [ -z "$VAR" ]; then echo “empty”; else echo “not empty”; fi

    需要注意的是必须把$VAR的两头用双引号包起来。

    3,双引号和单引号

    说到双引号,它与单引号的区别在于假如引号之间有变量,则一定要用双引号。因为BASH不会检测单引号中的内容,也就是说单引号之中不存在特殊字符。echo ‘$VAR’ 的输出就是$VAR,在单引号中使用双引号也没有任何问题。相反,假如在双引号中需要打印特殊符号是就需要使用’'来转义。比如echo “$VAR” 会输出空字符,而echo “$VAR”会输出$VAR。

    4,$()

    假如需要把一个或一串命令的返回值赋给一个变量,可以用$(),然后把命令放入括号中。例如:

    LINES = $(cat filename | wc -l)

    5,#!/bin/sh

    差点忘了这个比较重要的。这是脚本文件的第一行。用来说明该脚本是用/bin/sh来运行的。这个好像有些人面试的时候喜欢问。。。然后再脚本中注释一行用#号。不知道有没有可以注释多行的。。。

    6,sed ‘s/abc/cba/’

    sed可以用来做正则表达式的搜索和替换,既可以针对文本文件,也可以针对字符串变量。这里我主要使用的是字符串变量,所以一般格式是这样的:

    TEMP=$(echo $SVAR | sed ‘s/.*(regex).*/1/’)

    这样就可以在变量SVAR中找到对应regex的内容,然后把它提取出来。regex两边的 ( 和 ) 用来把regex对应的内容形成一个组(group),然后 1 表示把SVAR的所有内容替换成第一组的内容,也就是regex能够match的那一部分。假如找不到与regex对应的部分,那么返回的是SVAR的所有内容。

    7,”${VAR/”substring”}” = “$VAR”

    上述等式可以用来判断一个字符串中是否存在substring。假如相等则说明不存在。因为等式左边会返回从找到的第一个substring开始的子字符串,只有当不存在substring时才会返回原字符串。

    8,curl

    curl是一个非常强大的用来发送http请求的命令。我只用到了一些参数,如

    -s 表示静默运行,不显示curl命令的速度,完成情况,错误等statistics

    -S 通常与 -s 一起用,表示当有错误的时候显示出来

    -k 当需要发送https请求时,加上这个表示允许不安全请求

    -X 后面跟请求方法,如POST, PUT, DELETE。假如是GET的话就不用了,因为这是默认操作

    -H 后面跟头部参数,一个curl命令可以使用多个 -H 来定义多个参数

    -d 后面跟body,必须使用单引号开始和结束

    所以一个curl命令可能看上去是这样的:

    curl -sS -H ‘Content-Type:application/json’ -d ‘{“name”:”‘$VAR’”}’ http://www.where.com

    需要注意的是在body中使用变量的话,需要先用一个单引号结束上一个单引号的控制范围,再在这个变量之后用一个单引号与后面的单引号作对应。

    9,定义方法

    在脚本中是可以定义function的。具体形式可以是:

    func(){

    …

    }

    定义时不需要写明输入参数有哪些,因为在方法里面可以直接获取并使用这个方法或者命令后面跟的参数。例如:

    func abc 30

    那么$1 就是abc,$2 就是30。假如有更多输入参数,那么可以使用$3,$4,。。。一直下去。

    方法也可以有返回值,如

    func() {

    …

    return 35

    }

    那么 func abc 30 运行之后,$ 中存的就是35。

    10, tr

    可以用来把字符串中的某一个字符改成另一个字符,所以就可以用来做字符串的切分。例如有一个字符串SVAR=”a,b,c”。通过命令:

    arr=$(echo $SVAR | tr “,” “n”)

    就可以把一个字符串变成三个。

    11,字符串操作

    字符串尾部添加字符:SVAR=$SVAR’abc’ 就可以在SVAR原本的字符串后面添加abc三个字符

    字符串删除尾部最后一个字符:SVAR=${SVAR% }

    12,case “$VAR” in

    a)

    …

    ;;

    b)

    …

    ;;

    *)

    …

    ;;

    esac

    这个就类似C语言中的switch,对VAR中的不同内容进行不同的操作。

    上一篇返回首页 下一篇

    声明: 此文观点不代表本站立场;转载务必保留本文链接;版权疑问请联系我们。

    别人在看

    正版 Windows 11产品密钥怎么查找/查看?

    还有3个月,微软将停止 Windows 10 的更新

    Windows 10 终止支持后,企业为何要立即升级?

    Windows 10 将于 2025年10 月终止技术支持,建议迁移到 Windows 11

    Windows 12 发布推迟,微软正全力筹备Windows 11 25H2更新

    Linux 退出 mail的命令是什么

    Linux 提醒 No space left on device,但我的空间看起来还有不少空余呢

    hiberfil.sys文件可以删除吗?了解该文件并手把手教你删除C盘的hiberfil.sys文件

    Window 10和 Windows 11哪个好?答案是:看你自己的需求

    盗版软件成公司里的“隐形炸弹”?老板们的“法务噩梦” 有救了!

    IT头条

    公安部:我国在售汽车搭载的“智驾”系统都不具备“自动驾驶”功能

    02:03

    液冷服务器概念股走强,博汇、润泽等液冷概念股票大涨

    01:17

    亚太地区的 AI 驱动型医疗保健:2025 年及以后的下一步是什么?

    16:30

    智能手机市场风云:iPhone领跑销量榜,华为缺席引争议

    15:43

    大数据算法和“老师傅”经验叠加 智慧化收储粮食尽显“科技范”

    15:17

    技术热点

    商业智能成CIO优先关注点 技术落地方显成效(1)

    用linux安装MySQL时产生问题破解

    JAVA中关于Map的九大问题

    windows 7旗舰版无法使用远程登录如何开启telnet服务

    Android View 事件分发机制详解

    MySQL用户变量的用法

      友情链接:
    • IT采购网
    • 科技号
    • 中国存储网
    • 存储网
    • 半导体联盟
    • 医疗软件网
    • 软件中国
    • ITbrand
    • 采购中国
    • CIO智库
    • 考研题库
    • 法务网
    • AI工具网
    • 电子芯片网
    • 安全库
    • 隐私保护
    • 版权申明
    • 联系我们
    IT技术网 版权所有 © 2020-2025,京ICP备14047533号-20,Power by OK设计网

    在上方输入关键词后,回车键 开始搜索。Esc键 取消该搜索窗口。