【Linux】Shell总结
来源:互联网 发布:第六届社交网络 编辑:程序博客网 时间:2024/06/03 19:45
1.Shell的类型:
Shell是脚本语言,常见的有bash,sh,csh与ksh。bash是最常见的,是linux系统默认的shell。脚本语言相当于每一次执行都要编译,然后再运行,效率低但是功能强大,需要较少的代码就可以实现较复杂的功能。全部变量
2.变量:
定义变量不需要申明,直接赋值即可。需要注意的是赋值号左右两边不能有空格。必须紧挨着,比如“a=10”。在使用变量时必须加美刀符,如果要指定变量名的范围,可以加上{},这种通常出现在字符串操作中,用于指定哪些是变量名。
shell脚本中有一些特殊的变量。“$0”:当前脚本的名字。 "$n":第n个变量。 "$#":变量数目。 "$*"与"$@":全部变量。"$$":进程号。
#!/bin/basha="Shell program:"echo "File name:${0}"echo "First Para:${1}"echo "Para Num:${#}"echo "Pid:${$}"
3.转义:
如果要在echo语句中使用转义符,如“\n”,必须在echo中加入-e选项。
echo -e "Hello \n world"echo "Hello \n world"
4.运算符:
算数运算,bash本身不支持算术运算,但是可以借助expr工具,不过expr也只是支持整形的运算。expr以及运算的表达式必须放在``之间,并且运算符与前后的两个操作数必须用空格相分离。乘法操作需要转义符。
#!/bin/basha=10b=3c=`expr $a \* $b`echo $c比较运算符,就是等于,不等,以及大于等于,大于这类的,形式是“-”加上英语缩写。这6个符号只能用在数字比较上,不能用于字符串。对于数字而言,也可以使用==和!=来比较等于。对于字符串相等的比较是=和!=,这点需要分清。
带英文的6个用于数字,数字还可以用==与!=。
字符串只能用=与!=。
还有文件判断符,比如-e是否存在,-d是否为目录等。
5.字符串:
字符串与数字是shell中最常用的数据类型。
提取子串
a="abc"b=${a:1:2}长度
echo "${#a}"6.数组:
定义有两种方法,类似php,一种是直接定义,元素再小括号内部,元素与元素之间用空格分割。另一种是一个一个定义。使用数组需要用美刀符号,并且加大括号,内部的中括号放索引,如果放*,表示全部元素。计数用#。
a[0]=1a[2]=2b=(1 2 3 4 5)echo ${b[*]}echo ${a[0]}echo ${a[*]}echo ${#a[*]}7.if:
共有三种。
if[] then sts fi
if[] then sts else sts fi
if[] then sts elif[] then sts else sts fi
注意,[]必须与前后的语句空格,包括[与],以及内部和外部。
#!/bin/basha=8if [ $a -lt 8 ]then echo "da"elif [ $a -eq 8 ]then echo "deng"elseecho "xiao"fi
8:for循环
有两种,一种是定义次数的,但是需要注意是两个小括号。另一种是for i in xx。这种可以用于文件操作。命令放在$()内部,表示获得命令执行的结果。
for file in $(ls)doecho $filedonefor ((i = 0; i < 10; i++))doecho ${i}donefor i in 1 2 3 4 5doecho $idone9.函数定义:
shell中函数的定义只需要函数名加小括号即可。不需要指明参数列表,调用时直接写函数名字即可。如果有参数就在函数名后面加参数。
对于返回值,有两种,一种是用echo,那么函数中所有的echo都是标准输出,会被当做命令的输出,这里函数就相当于一个命令,执行时用``包围。就可以得到所有echo的输出。同时也可以用return返回,这个返回值只用来表示函数执行的状态,或者结果,失败或者成功。只能返回一个整数值。
#!/bin/bashf(){echo "glgl"echo "haha"if [ $1 -gt 10 ]then return 100else return 1fi}a=`f 9`echo $?echo $a10.重定向:
linux中有三个特殊的文件描述符。
0:标准输入
1:标准输出
2:错误输出
默认情况下,正常的输出在1,错误的在2。有时我们为了保存,可能会重定向到文件中。
>:输出重定向,覆盖
>>:追加
>$1:重定向到标准输出。如果没有1,那么1会被当做一个名字为1的文件。
格式为:命令 重定向1 重定向2.。。。。。。
- linux shell编程总结
- Linux Shell常用命令总结
- linux shell总结
- Linux Shell常用命令总结
- Linux Shell常用命令总结
- Linux Shell 快捷键 总结
- Linux Shell 命令总结
- Linux Shell常用命令总结
- Linux Shell常用命令总结
- linux shell if 总结
- linux shell 总结
- Linux Shell命令总结
- Linux Shell常用命令总结
- Linux Shell常用命令总结
- Linux Shell常用命令总结
- Linux Shell命令总结
- Linux Shell 常用命令总结
- linux shell环境变量总结
- 图书--数据库查询
- Maven项目包错java.lang.ClassNotFoundException: org.springframework.web.context.ContextLoaderListener
- 浅谈java单例模式
- 动态规划求解最长回文字符串
- 如何中断动画状态机的转换过程?
- 【Linux】Shell总结
- Gulp在前端的常用操作实例
- STM32时钟树分析
- C语言交换两个数字的三种做法
- java获取指定的主机的IP地址
- Java进阶java int与Integer的区别
- ffmpeg常用参数一览表
- Qt Creator5.7添加qwt绘图插件之成功案例解析
- PotPlayer恢复默认设置