http://www.bbsxgb.com/?id=21
来源:互联网 发布:江苏网络电视台 编辑:程序博客网 时间:2024/06/04 18:29
什么是shell语言?
1.shell是用户与linux内核之间交互操作的一种接口,通常是bash shell.
2.shell是一门编程语言,即shell脚本(解释行语音)
3.一个系统可以存在多个shell,不同的shell支持的语法不同
shell script :脚本编程
.sh 意味着脚本的sh的语法
.csh cshell的语法
.base base的语法
shell编程开发
在.sh文件内容的顶部加上 #!/bin/bash
相对或者绝对路径执行shell的时候(例如 ./demo.sh)必须在文件上加上可执行的权限
sh就可以直接运行,解释器执行(例如 sh demo.sh)
. shell的变量
shell的变量分为系统变量鹤用户自定义变量
系统变量例如 $HOME $PWD $USER Bash
[log_user_5i5j@ms_nginx_01 ~]$ echo $HOME /home/log_user_5i5j [log_user_5i5j@ms_nginx_01 ~]$ echo $PWD /home/log_user_5i5j
[log_user_5i5j@ms_nginx_01 ~]$ echo $USER log_user_5i5j
用户自定义变量,通常大写,=两边不能有空格,可以有下划线
set查询系统中的所有变量
unset 撤销定义的变量
readonly 定义的静态变量,不能撤销也不能修改。等同于java的final.
export 可以把变量提升为全局,可以提供其他的shell使用。
特殊变量 a=`ls-la` 反引号,运行反引号里面的命令并返回给a,等同于a=$(ls-la)
#?表示上一个命令退出的状态,0为成功,大于0为未执行成功
$$表示当前进程号
$0当前的脚本名称
$n,占位符,输入参数。(n>=1)
$*和$@ 表示参数列表,当成数组使用。
$*在同一行 $@换行 运算符 格式expr m + n 或者 $((m+n)),expr 和变量之间有空格 Bash [log_user_5i5j@ms_nginx_01 ~]$ a=`expr 2 + 3`
[log_user_5i5j@ms_nginx_01 ~]$ echo $a 5
[log_user_5i5j@ms_nginx_01 ~]$ expr `expr $a ` \* 4 20
let bash中用于计算的工具,格式 let m+n ,+中间没有空格 Bash
[log_user_5i5j@ms_nginx_01 ~]$ let a=1+1
[log_user_5i5j@ms_nginx_01 ~]$ echo $a 2
[log_user_5i5j@ms_nginx_01 ~]$ let a=$a+2
[log_user_5i5j@ms_nginx_01 ~]$ echo $a 4
流程控制
1.if语句 if [条件测试]
then # 为true执行
else # 为false执行
fi
2.for in语句
for 变量 in 传参
do #执行
done
3.while语句
while 条件语句
do #执行
done;
总结
编辑文件
vim demo.sh
Bash
#!/bin/base a=abcd
echo $a
echo '占位符段!begin'
echo '第一个占位符'$1
echo '第二个占位符'$2
echo '第三个占位符'$3
echo '占位符段!
end' echo ''
echo '执行$@循环!begin'
index=0;
for p in $@
do
index=`expr $index + 1` #同等于
let index=$index+1
注意 expr 的+要加空格
let的+不能加空格
echo '第'$index'个变量'$p
sleep 2
done
echo '执行$@循环!end'
执行结果:
Bash
[log_user_5i5j@ms_nginx_01 ~]$ sh demo.sh hello word aabbcc abcd
占位符段!begin
第一个占位符hello
第二个占位符word
第三个占位符aabbcc 占位符段!
end 执行$@循环!begin 第1个变量hello 第2个变量word 第3个变量aabbcc 执行$@循环!end 0 上一条命令执行成功
阅读全文
0 0
- http://www.bbsxgb.com/?id=21
- http://www.vckbase.com/document/viewdoc/?id=415
- http://www.vckbase.com/document/viewdoc/?id=675
- http://www.renren.com/profile.do?id=220869953
- http://www.vckbase.com/document/viewdoc/?id=1473
- http://www.wlerp.com/News/detail.asp?id=22
- http://www.fang99.com/know99/question.aspx?Id=0000076838
- 如何删除realsched.exe(http://www.loveinbbs.com/dispbbs.asp?boardid=10&id=142)
- http://www.aogosoft.com/downpage.asp?mode=viewtext&id=163
- http://www.dev-club.com/club/bbs/showEssence.asp?id=26362
- XCodeFactory下载地址:http://www.tomore.com/dispdocnew.php?id=29469
- 什么是Blog? (转自http://www.programfan.com/club/showbbs.asp?id=68106)
- OPC DCOM 配置 - 摘自工控网 http://www.gongkong.com/tech/detail.asp?id=284940
- asp.net控件开发基础 来源:http://www.clingingboy.com/blog/article.asp?id=258
- 《网络机器人java编程指南》源代码下载http://www.goldenbg.com/article.asp?id=644
- Spy++原理初探http://www.vckbase.com/document/viewdoc/?id=1782
- matlab图形与声音http://www.image2003.com/book/open.asp?ID=2358
- 基本的浮动原理http://www.52css.com/article.asp?id=229
- java switch
- Spring-Cloud系列第4篇:spring-cloud-Hystrix
- Zookeeper Api(java)入门与应用
- 取消Windows server 2008关机提示的方法
- C++调用命令行
- http://www.bbsxgb.com/?id=21
- ASP.NET 自定义服务器控件
- ORA-01031:权限不足
- MySQL数据库与其他数据库的3个常用语法区别(外链接、分组排序row_number() over(partition by ) 、group by和distinct)
- RxSwift基本使用(一)
- Delphi打开网址链接的几种方法
- 集群session共享方案(有shiro共享session的方案)
- 调用ffmpeg库生成AAC静音帧packet
- 字符逆序