ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

shell基础语法

2019-09-27 16:58:17  阅读:122  来源: 互联网

标签:输出 shell 变量 基础 语法 数组名 参数 file


1、变量

语法:变量名=变量值
PS:=两边不能有空格

1、使用变量:$变量名
ex:  Name="wendy"#声明变量
     echo $Name 或 echo ${Name}  #输出变量
ps:花括号可选
2、只读变量:readonly 变量
3、删除变量:unset 变量
4、字符串变量长度获取:${#字符串变量}
ps: string="abcd" echo ${#string}  #输出4
5、字符串变量提取部分:${变量:1:4} #表示从第二个字符开始,截取4个字符
ex:string="abcdedfg" echo ${变量:1:4} #输出bcde

 

2、变量类型

局部变量:只对当前shell有效

环境变量:所有程序都能访问环境变量

shell变量:可设置

 

3、符号问题

单引号:变量无效,任何字符原样输出

双引号:可使用变量,可以出现转义字符

ps:拼接字符串用双引号,且变量需要用{}

 

注释问题:

单行注释:#

多行注释: :<<EOF 注释内容 EOF(EOF可以替换为其他任意字符)

 

4、数组

定义数组:数据名=(值1 值2 值3...值n)或数组名=(

value0

value1

value2

value3

)或 数据名[0]=value0  数据名[1]=value1

ex:array_name=(value0 value1 value2)


读取数组:${数组名[下标]}

ex:value=${数组名[n]} #@表示获取数组中的单个元素

   length=${#数组名[@ || *]}# @、*表示获取数组所有元素的长度

5、参数处理

$#  脚本后面接的参数的个数

$*  脚本后面所有参数,参数当成一个整体输出,每一个变量参数之间以空格隔开

$@  脚本后面所有参数,参数是独立的,也是全部输出

$$  脚本运行的当前进程ID号

$!  后台运行的最后一个进程的ID号

$?  上一条命令执行后返回的状态,0表示没有错误,0以外其他所有值表示有错误

6、运算符:

算数运算符: + - * / % = == !=

关系运算符:-eq -ne -gt -ge -lt -le(= != > >= < <=)

布尔运算符:! -o -a(or and)

逻辑运算符: && ||

字符串运算符:= != -z -n $(= != 判断=0为真 判断!=0为真 判断是空为真)

文件测试运算符:(-e -r -w -x -s -d -f -c -b)+文件名 文件存在且可读、可写、可执行、至少有一个字符、是目录、普通文件、字符型特殊文件、块特殊文件

7、shell函数:

[ function ] funname [()]
{
action;
[return int;]
}
或者function fun()
或者fun()
ps:参数返回,可以显示加;

8、shell 输入/输出重定向:

command > file 将输出重定向到file
command < file 将输入重定向到file
command >> file 将输出以追加的方式重定向到file
n >& m   将输出文件m和n合并
n <& m   将输入文件m和n合并
<<tag    将开始标记tag和结束tag之间的内容作为输入
/dev/null:不希望在屏幕上显示输出结果 ,重定向到垃圾箱/dev/null

 

标签:输出,shell,变量,基础,语法,数组名,参数,file
来源: https://www.cnblogs.com/wendyw/p/11598925.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有