shell输入回车执行下一步_第二章 shell 编程

f4c45e67771662988e31049dcd1b118e.png

Shell Programming

代码请看过来

github欢迎点个 star

What is shell

用户与Linux 系统间接口的程序,允许用户向操作系统输入需要执行的命令

各种shell程序:

sh csh,tcsh,zsh ksh,pdksh bash

使用哲学

  1. 多个bash命令组合使用
  2. 如果需要优化则需要自己重新实现

管道和重定向

  1. 文件描述符0代表程序的标准输入,1代表程序的标准输出,2 代表标准错误输出
  2. > 是重定向的符号,如 ls -l > output.txt 将内容重定向到output.txt中, 如果output.txt 已存在,那么将文件覆盖
  3. >> 以追加的方式重定向。
  4. kill 1234 >killout.txt 2>killerr.txt 将标准错误输出重定向到killerr.txt中。
  5. kill 1234 > killout.txt 2>&1 将标准错误输出输出到与文件描述符1相同的输出地方(>& 是一个整体)
  6. 使用/dev/null 通用回收站来丢弃所有输出信息 kill 1234 >/dev/null 2>&1
  7. 使用管道操作符(|)来连接进程,命令执行的顺序时从左到右的,如: ps -xo comm|sort|uniq|grep -v sh|more 该命令用来查询所有进程,并按照字母顺序进行排序,去除名字相同的进程,去除名字为sh的进程,并且以分页的形式显示
  8. 同一行命令中,同一个文件不能被既写又读,这种情况下会返回空文件(在读取文件之前该文件被覆盖了)

作为程序设计语言的shell

#!/bin/bash

#first
#This file looks through all the files in the current 
#directory for the string POSIX, and then prints the 
#names of those files to the standard output
for file in *
do
    if grep -q POSIX &file
    then
        echo $file
    fi
done
exit 0
  1. # 单行注释
  2. ! 用来提示系统 紧跟其的使用来执行脚本的程序,如#!/bin/bash 告诉系统, /bin/bash 来执行当前程序
  3. 设置合理的退出码:以便于其他程序查看当前脚本是否成功执行,或者被其他程序调用—— 0代表成功(错误为0)
  4. file 文件名 可以用来查看文件类型
  5. 编写完成bash文件,chmod +x first.sh 将bash文件设为可执行

shell 语法

变量

  1. 直接使用,不需定义
  2. shell程序种所有的变量都被看成时字符串,如果要看成数值,需要手动转换
  3. 区分大小写
  4. bash var=hello world ##var变量名可以用于赋值 echo $var ## 显示var内容需要$ var=7+5 echo $var ##显示 7+5 一切皆为字符串
  5. 等号(=)两边不能有空格, 字符串内不能有空格(如果有就用“” 括起来)。bash 用空白字符作为分隔符
  6. bash read var ## 终端等待输入 ## 输入:hello world echo $var #终端显示 hello world
  7. 单引号与双引号作用不同
    1. 单引号仅仅用来扩住字符串,防止因为空格存在而被分割。
    2. 双引号具有单引号的功能,同时 ($变量)在双引号中会被扩展成变量内容

环境变量

|环境变量|意思| | ------ |------| |$HOME|当前用户的家目录| |$PATH|冒号分割的默认搜索目录| |$PS1|命令提示符,一般是$| |$IFS|输入域分隔符,通常是空格、制表符、换行符| |$0|脚本的名字| |$1|第一个参数内容|

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值