shell基础

来源:互联网 发布:淘宝手机兼职怎么做 编辑:程序博客网 时间:2024/06/06 03:52

1. 变量

a) 声明变量并对其赋值:

var1=hello\ world
var2=i\'m\ a \ student.

等号右边的字符串不能有空格,且单引号双引号必须成对出现,或者使用\进行转义。

使用“echo $变量名”查看变量内容
输出结果:


b) 变量的拼接

推荐使用第一种方法;

双引号会对$后的变量名进行解析;

单引号不会对$后的变量名进行解析;

var3=--${var1}!var4="--$var1"var5='--$var1'


c) unset 变量名 #取消变量


d) 将变量导入为环境变量

一般变量只会在当前进程可见,类似于编程语言中的变量作用域。

为了使变量在其他进程也可见,使用export命令将其导入为环境变量。


e) echo $?

查看上一条命令执行的返回值,0表示正常结束。


f) 读取变量

read -p “please input a num: ” var # -p 表示显示后面的字符串作为输入提示符;


g) declare

declare -i # 声明整形变量

declare -x #声明变量后将其导入为环境变量

declare -a # 声明数组


2. 数据重定向

>  filename #等价于'1> filename',表示将正确的结果重定向到文件,会覆盖文件内容

>> filename #等价于'1>> filename',不会覆盖文件,而是在文件结尾添加内容

2> filename #会覆盖文件,将错误结果重定向

2>> fileneme #将错误结果添加到文件末尾


tee #双向重定向,当结果既要重定向到文件,又要显示到屏幕的时候使用

ll /home | tee /home/test.txt | cut -d ' ' -f 1 


xargs # 对于不支持重定向的命令,可以使用xargs传人参数

find /home -type d | head -n 3 | xargs ll   # ll不支持重定向,需要使用xargs



3. 文件切割与合并

split [-bl] file PREFIX #b为按大小切割文件,l为按行数切割文件
ll | split -l 4- temp  # 将ll的结果每4行存入一个文件名前缀为temp的文件中,其中-这个符合很重要,表示将ll的结果作为一个临时文件来执行split命令
cat temp_lsc* >> temp




4. awk

主要,print后的字符串必须放在双引号里面,先执行BEGIN,最后执行END。


0 0
原创粉丝点击