最近看了 shell脚本编程指南,发现问题积累越来越多
决定放弃shell脚本编程指南,开始 Linux命令行与Shell脚本编程大全 的学习
学问的精通在于细节的精通。
2014-2-23 看完!
shell脚本编程
同传统的编程语言一样,shell提供了很多特性,这些特性可以使你的shell脚本编程更为有用。
创建Shell脚本
一个shell脚本通常包含如下部分:
首行
第一行内容在脚本的首行左侧,表示脚本将要调用的shell解释器,内容如下:
#!/bin/bash
#!符号能够被内核识别成是一个脚本的开始,这一行必须位于脚本的首行,/bin/bash是bash程序的绝对路径,在这里表示后续的内容将通过bash程序解释执行。
注释
注释符号# 放在需注释内容的前面,如下:
内容
可执行内容和shell结构
Shell脚本的权限
一般情况下,默认创建的脚本是没有执行权限的。
没有权限不能执行,需要赋予可执行权限。
Shell脚本的执行
1,输入脚本的绝对路径或相对路径
/root/helloWorld.sh
./helloWorld.sh
2,bash或sh +脚本
bash /root/helloWorld.sh
sh helloWorld.sh
注:当脚本没有x权限时,root和文件所有者通过该方式可以正常执行。
3,在脚本的路径前再加". " 或source
source /root/helloWorld.sh
. ./helloWorld.sh
区别:第一种和第二种会新开一个bash,不同bash中的变量无法共享。但是使用. ./脚本.sh 这种方式是在同一个shell里面执行的。
最近看了 shell脚本编程指南,发现问题积累越来越多
决定放弃shell脚本编程指南,开始 Linux命令行与Shell脚本编程大全 的学习
学问的精通在于细节的精通。
2014-2-23 看完!
转载于:https://www.cnblogs.com/loongqiang/p/3400391.html
shell脚本编程(完结版)
Shell 脚本编程学习笔记 2013 年 5 月 2 日 追风~忆梦
如有任何疑问,请联系作者,作者 QQ:1028150787,或者到韦东山群共同讨论 1
Shell 脚本编程学习笔记 2013 年 5 月 2 日 追风~忆梦
目录
预备知识 3
第一节 shell 运算符应用 3
1. 整数测试运算4
2. 字符串测试运算4
3. 文件测试运算5
4. 逻辑运算5
第二节 在 shell 脚本中进行条件控制 5
第三节 在 shell 脚本中进行 for 循环 7
第四节 在 shell 脚本中进行 while 循环 8
第五节 在 shell 脚本中使用 util 循环 8
第六节 在 shell 脚本中使用函数 8
第七节 shell 脚本之 echo 和 expr 讲解 9
第八节 shell 脚本循环终止之 break 和 continue 10
第九节 shell 脚本之 exit 和 sleep 11
第十节 shell 脚本之 select 循环与菜单 11
第十一节 shell脚本之循环控制 shift 命令 11
第十二节 shell脚本之字符串操作 11
第十三节 shell脚本之数组实现 12
第十四节 shell脚本之脚本调试 12
第十五节 shell脚本之编程小结 12
程序例程 14
习题实训 29
综合实例 31
1. 需求分析31
2.系统设计31
3.程序代码31
声明 35
如有任何疑问,请联系作者,作者 QQ:1028150787,或者到韦东山群共同讨论 2
Shell 脚本编程学习笔记 2013 年 5 月 2 日 追风~忆梦
预备知识
1. shell 脚本语言:把经常使用的 Linux 命令存储在一个文件里面,shell 可以读
取这个文件并顺序执行其中的命令,这样的文件被称为脚本文件。注意:shell
脚本按行解释。
2. shell 程序设计中,用 vi 或者 gedit 等编辑器编写的代码并不需要什么后缀名。
如果硬要加上,则写上.sh 即可。有一点值得注意,当我们加上后缀之后,编
辑器会使用高亮的语法显示,避免我们出错。
3. 编写的过程中,echo 之后的引用为 “`”,即Esc 返回键的下面一个,不要认为
是单引号。准确来说,是反单引号。在 shell 命令中,一般用反单引号。
4. 编程结束之后,我们要先赋予文件的执行权利,可以用 sudo chmod 755 file,
sudo chmod 777 file 或者 sudo chmod a+x file 来赋予程序的可执行权利。
5. 前面的 1,2 ,3 弄好了之后,就是运行了,直接在终端输入:./file 即可。
6. 不要为了美观,在命令中添加多余的空格,否则会出错。特别是在环境变量
PATH,export 等,等号两侧不要加多余的空格。
7. shell 中的全局变量有以下几个:
$#: 执行 shell 脚本时的命令行参数,不包括脚本本身
$?: 执行上一条 shell 命令的返回值
$0: shell 脚本程序自身的名称
8. 用户在自定义变量时,要遵循以下命名规则:
首个字符必须是字母(a~z, A~Z )。
中间不能有空格,可以使用下划线(_ )。
不能使用标点符号。
不能使用 shell 里的关键字(通过 help 命令查看)。
9. 在 Linux 中,自动(或者叫预定义)变量包括$@,$+,$^,$?,$
其中(以下内容来源于 Makefile 的讲解),
$@表示规则中的目标文件夹集;
$+表示所有的依赖文件,以空格隔开,并以出现的先后为顺序,可能包含重
复的依赖文件;
$^表示所有的依赖文件,以空格隔开,不包含重复的依赖文件;
$?表示所有比目标新的依赖目标集合;
$
$*表示不包括扩展的目标文件名。
第一节 shell 运算