学习shell(二)

本文深入探讨Shell脚本的基础语法,包括条件分支、read命令的使用,以及如何正确处理用户输入。同时,文章讲解了如何利用echo命令进行文本转义,并介绍了文件输出的基本操作。
  1. 条件分支:  (条件表达式的中括号里面 空格不可以省略)
    if [ 2 = 2 ]
    then 
    echo '2 = 2';
    else
    echo '2 != 2';
    fi
    # 上面的代码不使用缩进, 并不会出错, 但不应该这样使用
    # 上面的显然使用的是回车作为命令结束符, 那么如果把上面的几行代码放在一行, if 条件表达式后面必须加上分号, 否则会报错 例如:
    if [ 2 = 2 ]; then echo '2 equal 2'; else echo '2 != 2'; fi
    # 如果非要 写在一行, 标红的分号 必须要写 ,  其实只要保持良好的编码习惯, 该缩进就缩进, 换行的换行, 根本不需要考虑上面的问题

     

  2. read 命令从标准输入中读取一行,并把输入行的每个字段的值指定给 shell 变量. 他和$0  $1 这种的区别是, $0 是在执行文件的时候, 一起传入参数, 如果没传入参数, 那就没有参数了, 而 read 是运行脚本文件后会提示用户输入内容, 获取的是用户输入的内容
  3. ./test.sh 和 bash test.sh 功能相同. 当文件中使用read读取用户输入时, 使用 sh test.sh执行文件会报错, 而使用bash 则不会报错. 有待解决.
    ./test.sh  和 bash test.sh 在子进程中执行,  . ./test.sh  和 source ./test.sh 在当前进程中执行.   使用./test.sh 执行shell脚本文件, 文件必须有执行权限, 但是使用 bash 或者 sh 或者source 或者 . ./test.sh 的时候, 文件可以没有执行权限, 只需要有可读权限即可运行
  4. 开启转义:
    # 使用 -e 开启转义
    echo -e "this is \n is"; #会换行
    echo -e 'that is \n is'; #会换行
    echo "these are \n is";  #不会换行
    echo  here \n is;        #不会换行
    echo  -e `here \n is`;   #会报错,  here command not  found  ,反引号是配合命令使用的
    # 结论是: 使用 -e 开启转义, 并且转义字符在引号中,无论单引号还是双引号都可以转义, 不使用 -e  或者转义不在引号中, 都不可以转义, 比如:
    echo  ttt '\n'  ttt  # 这样也是可以换行的

     

  5. 把显示的结果导入到文件中(不能够追加的)
    #!/bin/sh
    echo "It is a test" > myfile   #这个文件无论执行多少次, myfile文件中都只有一行内容

     

转载于:https://www.cnblogs.com/bneglect/p/11363098.html

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符  | 博主筛选后可见
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值