设为首页 加入收藏

TOP

Linux Shell学习笔记
2014-11-24 08:20:28 来源: 作者: 【 】 浏览:1
Tags:Linux Shell 学习 笔记

# 注释,或者脚本第一行的#!/bin/bash


; 命令分隔符,可以用来在一行中来写多条命令


;; 终止case 例如:


case "$variable" in


abc) echo "\$variable=abc" ;;


xyz) echo "\$variable=xyz" ;;


esac


" 部分引用


' 全部引用


\ 转义


, 分隔算术操作,只有最后一项被返回


let "t2=((a=9,15/3))"


#set "a=9" and "t2=15/3"


` 后置引用,命令替换


: 空命令,等价于"NOP",起到true的作用


如:


:


echo $ #0


死循环:


while:


do


...


done


在if/then中的占位符,如:


if condition


then :


else


take-some-action


fi


在一个2元命令中提供占位符:


:${username='whoami'}


使用“参数替换”来评估字符串变量


:${HOSTNAME }${USER }${MAIL }


#如果一个或多个必要的环境变量没被设置,就会打印出错信息


:>data.txt #文件data.txt被清空


":"用来做环境变量的分隔符


echo $PATH


/usr/local/bin:/usr/x11r6/bin:/sbin


* 匹配文件名中的任意字符,数学运算中的乘


** 幂运算


! 取反


测试操做


$ 变量替换


$ 正则表达式的结束符


${} 参数替换


$*,$@ 位置参数


$ 退出状态,0为成功,非0为失败


$$ 进程ID变量,脚本的进程ID


() 命令组,子shell。子shell中的变量对于脚本剩下的部分不可用,例如:


a=123


(a=321;)


echo "a=$a" #a=123


初始化数组:


Array=(element1,element2,element3)


{aaa,bbb,xxx...}


大括号扩展,其中不能有空格,


cat {file1,file2,file3}>combined_file


#将file1,file2,file3


{} 代码块:创建了一个匿名函数,但与函数不同的是,在其中声明的变量对于脚本的其他部分还是可见的


a=123


{a=321;}


echo "a=$a" #a=321


与()不同,{}中的代码块将不能正常地开启一个新的shell


[] test表达式


if [ -z "$1" ] 判断第1个参数是否为空


if [ "$ " -eq 0 ] 判断上一条语句是否成功


if [ -n "$2" ] 判断第2个参数是否为整型


......


[] 数组元素:


Arrary[1]=slot_1


echo ${Array[1]}


>,>>,<<,< 重定向


scriptname>filename 重定向脚本输出到文件中,并覆盖原有文件


command&>filename 重定向stdout和stderr到文件中


command>&2 重定向stdout到stderr中 ,1为stdout,2为stderr


scriptname>>filename 重定向到脚本输出到文件中,并添加到文件末尾


<,> ASCII比较


\<,\> 正则表达式中的单词边界


grep '\' textfile


| 管道,用来产生命令链


cat *.lst | sort | uniq


#合并和排序所有的"*.lst"文件,然后删除所有重复的行


管道中的一个进程的stdout必须被下一个进程做为stdin读入,如果管道中的某个命令产生一个异常,并中途失败,那么这个管道将过早的终止,这种行为被叫做“a broken pipe”,并且这种状态下将发送一个SEGPIPE信号


>| 强制重定向


|| 或逻辑


& 后台执行


&& 与逻辑


- 之前的工作目录


cd - #进入到上一个工作目录


与$OLDPWD的环境变量相同


~ home目录


~+ 当前的工作目录,与$PWD相同


~- 之前的工作目录,相当与$OLDPWD


^ 正则表达式中的表示行首


例子来源于《高级Bash脚本编程指南》下载见http://www.linuxidc.net/thread-2055-1-1.html


】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇C程序中获得命令行输出结果 下一篇Linux下的Shell语言编程入门

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·C 内存管理 | 菜鸟教 (2025-12-26 20:20:37)
·如何在 C 语言函数中 (2025-12-26 20:20:34)
·国际音标 [ç] (2025-12-26 20:20:31)
·微服务 Spring Boot (2025-12-26 18:20:10)
·如何调整 Redis 内存 (2025-12-26 18:20:07)