第1章 小试牛刀

简介

shebang

在Unix中,shebang其实就是指”#!”,取自#(Sharp)和!(bang)。脚本中只有第一行可以使用shebang来定义解释该脚本所使用的解释器。

登录提示符
  • $表示普通用户
  • #表示超级用户
执行方式
  1. 将脚本名作为命令行参数

    bash myScript.sh
  2. 授予脚本执行权限,将其变为可执行文件

    chmod 755 myScript.sh
    ./myScript.sh

如果将脚本作为bash的命令行参数来运行,那么就用不着使用shebang了

符号
  • shell使用分号或换行符来分割单个命令或命令序列
  • 注释部分以#为起始,一直延续到行尾
  • 双引号允许Shell解释字符串中出现的特殊字符,单引号不会对其做任何解释
彩色打印
"\e[1;31m xxx \e[0m"

文本颜色是由对应的色彩码来描述。其中包括:重置=0,黑色=30,红色=31,绿色=32,黄色=33,蓝色=34,洋红=35,青色=36,白色=37

彩色背景,经常使用的颜色码是:重置=0,黑色=40,红色=41,绿色=42,黄色=43,蓝色=44,洋红=45,青色=46,白色=47

命令

printf
printf "%-5s %-10s %-4.2f\n" 1 Sarath 80.3456
echo

-n:禁止输出文本的尾部追加换行符

-e:使用转义字符

实例

获取变量长度
${#var}
识别shell类型
echo $SHELL
echo $0
检测是否为超级用户
if [ $UID -ne 0 ];then
    echo xxx
else
    echo xxx
fi
算术运算
  • let

    a=3
    b=7
    
    let result=a+b
    let result--
    
    echo ${result}
  • []

    a=3
    b=7
    
    echo $[a+b]
    echo $[a+b-2]
  • (())

  • expr

  • bc

重定向脚本内部文本块
#!/bin/bash

cat <<EOF >log.txt
hello, world
EOF
数组与关联数组
  1. 定义数组

    array_var=(test1 test2 test3 test4)
  2. 打印内容

    echo ${array_var[0]}
    index=4
    echo ${array_var[index]}
  3. 遍历

    echo ${array_var[*]}
    echo ${array_var[@]}
  4. 打印长度

    echo ${#array_var[*]}
终端
#禁止回显
stty -echo
#运行回显
stty echo
函数
  1. 函数定义

    function fname()
    {
        statements;
    }
    
    fname()
    {
        statements;
    }
    
    fname() {statements;}
  2. 函数调用

    fname
  3. 函数参数

    fname arg1 arg2
  4. 函数导出

    export -f fname
循环
  • 面向列表的for循环

    for var in list;
    do
        commands;
    done
  • 迭代指定范围的数字

    for ((i=0;i<10;i++))
    {
        commands;
    }
  • 循环到条件满足

    while condition
    do
        commands;
    done

比较与测试

  • if条件

    if conditions;then
        commands;
    fi
  • else if和else

    if condition;then
        commands;
    else if condition;then
        commands;
    else
        commands;
    fi

[ condition ] && action; #如果条件为真,则执行action

[ condition ] || action; #如果条件为假,则执行action

操作符含义
-gt大于
-lt小于
-ge大于或等于
-le小于或等于
[ -f $file_var ]变量包含正常的文件路径或文件名,则返回真
[ -x $var ]变量包含的文件可执行,则返回真
[ -d $var ]变量包含的是目录,则返回真
[ -e $var ]变量包含的文件存在,则返回真
[ -c $var ]变量包含的是一个字符设备文件的路径,则返回真
[ -b $var ]变量包含的是一个块设备文件的路径,则返回真
[ -w $var ]变量包含的文件可写,则返回真
[ -r $var ]变量包含的文件可读,则返回真
[ -L $var ]变量包含的是一个符号链接,则返回真
1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看REAdMe.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看REAdMe.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。 1、资源项目源码均已通过严格测试验证,保证能够正常运行; 2、项目问题、技术讨论,可以给博主私信或留言,博主看到后会第一时间与您进行沟通; 3、本项目比较适合计算机领域相关的毕业设计课题、课程作业等使用,尤其对于人工智能、计算机科学与技术等相关专业,更为适合; 4、下载使用后,可先查看READme.md或论文文件(如有),本项目仅用作交流学习参考,请切勿用于商业用途。 5、资源来自互联网采集,如有侵权,私聊博主删除。 6、可私信博主看论文后选择购买源代码。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值