linux学习(bash)

bash

shell的变量功能

变量的设置规则
1. 变量与变量的内容以一个=来链接
2. 等号两边不能直接接空格符
3. 变量内容若有空格符可以使用双引号或单引号将变量内容结合起来
4. 转移字符"\"
5. 在一串命令中,还需要通过其他的命令提供信息,可以使用反单引号`命令`或$(命令)
6. 若该变量需要在其他子进程中执行,则需要用export来使变量变成环境变量
7. 取消变量的方法unset 变量名

env可以查看环境变量
主要介绍RANDOM这个"随机数"变量,目前大多数distributions都会有随机数生成器,那就是/dev/random,这个RANDOM变量的内容介于0~32767之间,所以是要echo $RANDOM时,就会随机出一个介于0~32767的数值
例如,需要随机出0~9之间的数
declare -i number=$RANDOM*10/32768
echo $number

$ 本身也是个变量,代表的是目前这个Shell的线程代号,用echo $$即可
? 问号也是一个特殊的变量,代表的是上一个执行的命令的回传值,可用于判断上一个命令是否成功执行,返回0则代表成功执行

变量键盘读取、数组与声明 read, array, declare

要读取来自键盘的输入的变量,用read这个命令
read [-pt] variable
-p 后面可以接提示符
-t 后面可以接等带的秒数

声明变量的类型,用declare
declare [-aixr] variable
-a 声明一个数组类型的变量
-i 声明一个整数类型的变量
-x 用法与export一样,将后面的变量变成环境变量
-r 将变量设置成readonly类型,该变量不可被更改内容,也不能重设

变量内容的删除、替代与替换

通配符与特殊字符

通配符

* 代表0到无穷多个任意字符
? 代表一定有一个任意字符
[] 同样代表一定有一个中括号内的字符,例如[abcd]
[-] 若有减号在中括号内时,代表在编码顺序内的所有字符,例如[0-9]
[^] 若中括号内的第一个字符为指数符号^ ,表示原向选择,例如[^abc]表示只要是非a,b,c的其他字符都接受的意思

特殊字符

# 批注符
\ 转移字符
| 管道(pipe),分隔两个管道命令的界定
; 连续命令执行分隔符
~ 用户的主文件夹
$ 使用变量前导符
& 作业控制(job control),将命令变成背景下工作
! 逻辑运算意义上的非
/ 目录符号
>,>> 数据流重定向,输出导向,分别是”替换“和”累加“
<,<< 数据流重定向,输入导向
'' 单引号,不具备变量置换功能
"" 双引号,具备变量置换功能
`` 中间可以用来引入其他命令,也可以用$()
() 在中间为子shell的起始于结束
{} 在中间为命令块的组合

数据留重定向

1> 以覆盖的方法将正确的数据输出到指定的文件或设备上
1>> 以累加的方法将正确的数据输出到指定的文件或设备上
2> 以覆盖的方法将错误的数据输出到指定的文件或设备上
2>> 以累加的方法将错误的数据输出到指定的文件或设备上

/dev/null 垃圾桶黑洞设备

将正确和错误的数据写入同一个文件可以使用 2>&1

管道命令(pipe)

例如 ps -ef | grep tomcat
其实管道命令"|"仅能处理经由前面一个命令传来的正确信息
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值