Linux Shell 学习笔记1:打印、变量、退出状态码

本机Linux版本:Ubuntu 18.04

概念

Shell:命令行界面(DOS是其中的一种)

Bash(Bourne Again Shell):Linux/Unix系统默认的Shell

Shell脚本:将Shell命令集合起来变成的批处理文件

小知识:Shebang 用sharp称呼“#”,用bang来称呼“!”,所以shebang=#!

Shell的提示符:

username@hostname $
root@hostname #
$代表普通用户,#代表管理员用户,在普通用户命令前加sudo可以得到管理员用户的效果
$前加上~变成~$表示主目录,本机主目录为/home/user

Shell的两种脚本运行方式:
  • 将脚本作为bash的命令行参数
    bash script.sh # 假设脚本位于当前目录下
    bash /home/seco/script.sh # 使用完整路径
  • 授予脚本可执行权限,在进行执行
    (1)要在脚本开头添加代码用来标识bash的解释器路径
    #!/bin/bash
    (2)授予脚本可执行权限
    chmod a+x script.sh
    (3)执行脚本
    ./script.sh # ’./‘表示当前目录
    /home/seco/script.sh # 使用完整路径
分隔符与注释

cmd1 ; cmd2
cmd1 # 此为注释,注释之后的一整行

终端打印 echo

默认换行
echo "hello world !"
echo 'hello world !'
echo hello world ! 该方法不能将分号输出(命令分隔符),并且该方法不能打印以’'开头的转义字符

参数:echo -parameter

  • n:取消结尾添加换行符
  • e:启用’'开头的转义字符,包括颜色
  • E:关闭转义字符
  • 参数可以连起来用,例如 ne
终端打印printf

默认不换行,与C语言类似
printf "hello world"
printf "%s %c %d %f\n" hehe h 1 1.2 #格式替换符
%-5s指明向左对齐宽度为5的字符串
%5s向右对齐
%-4.2f向左对齐保留两位小数

打印彩色输出

echo -e “\e[字背景颜色;字体颜色m字符串\e[0m” \e[0m将颜色置回
例:echo -e "\e[1;42m This is red \e[0m

变量

脚本语言不需要声明变量类型
在bash中,变量的值都是字符串

变量赋值:变量名=变量值(变量值包含空白字符需要加引号)

注:var = value 与 var=value不同,前者表示判断相等操作

在变量名加前缀就$可以打印出变量内容
echo $varecho ${var}

使用单引号时,变量名不会被扩展
echo ‘$var’ 只会打印$var

变量的长度:length=${#var}

环境变量

环境变量:未在当前变量中定义,而从父进程继承而来的变量(系统有默认继承变量)

查看进程运行的环境变量:
cat /proc/PID/environ # PID表示进程号
这样的结果是一堆“变量=值的”信息,可用tr命令将输出格式化
cat /proc/PID/environ | tr '\0' '\n'

设置环境变量 a=1;export a:从当前脚本往后执行的任何应用程序都会继承这个变量

默认环境变量PATH
PATH包含很多目录,目录之间用冒号分隔
当输入索要执行的命令后,Shell会在PATH包含的所有目录查找对应的可执行文件
如果需要在PATH中添加一条路径,则可使用:
export PATH="$PATH:目录"PATH="$PATH:/home/seco/hehe";export PATH

还有一些默认环境变量:HOME、PWD、USER、UID、SHELL

SHELL能知道当前的shell解释器地址(与0相同)

UID表示当前的用户(0表示root用户)

可以通过修改~./bashrc 中的PS1来修改命令提示符

退出状态码

每当命令执行完成后,系统都会返回一个退出状态。该退出状态用一个整数值表示,用于判断命令运行的正确与否

最后一次执行命令的退出状态值被保存在内置变量“?”中,所以,可以通过echo $?语句测试命令是否运行成功。

退出状态 0 表示正常执行,其他非零的状态码均表示失败。
另外在判断条件时可能会返回1

状态码描述
0命令返回成功
1一般性未知错误
2不适合的shell命令(错误的shell命令)
126找到了该命令但无法执行
127没找到命令
128无效的退出参数
128+x与Linux信号x相关的严重错误
130通过Ctrl+C终止的命令
255正常范围之外的退出状态码
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值