Shell脚本编程入门到放弃
1 区分大小写
UNIX是区分大小写的,因此shell脚本也是区分大小写的
2 特殊字符
UNIX的某些字符都有特殊的意义或功能,如果它们不以其特殊的意义使用必须要进行转义(escaped)。
为了转义它们需要用反斜杠或者单引号括起来。
3 shell
shell(命令行解释器)是一个能够用来运行命令、程序和shell脚本的环境。
4 shell脚本
shell脚本就是命令的有机组合。
shell脚本和函数都是解释型的,ASCII文本,不能被编译。
5 函数
函数的编写和脚本的编写类似,不同之处在于函数是在脚本中定义和调用。
函数形式如下:
function function_name
{
commands to execute
}
或者
function_name ()
{
commands to execute
}
在函数被调用前要对其进行声明或者定义,函数部分必须出现在调用函数的命令语句之前。
6 运行shell脚本
如果不采用对应的shell来运行则需要加上可执行权限
7 shell脚本中的注释和风格
良好的注释和代码编写风格对于可读性很重要
8 控制结构
if ... then
if ... then ... else
if ... then ... elif ... (else)
for ... in
while
until
case
9 使用break、continue、exit和return语句
10 here文档
here文档用于输入重定向到某个交互式shell脚本或程序。
11 shell脚本命令
表 1 UNIX命令概述
此处应该有表
12 符号命令
表2中的符号实际上是命令。
表 2 符号命令
此处应该有表
13 变量
变量是可以进行赋值的字符串,可以给的值包括数字、文本、文件名、设备或其他任何类型的数据。
为了访问变量所指代的数据需要在变量前加一个$,而且不能有空格。
14 命令行参数
命令行参数$1,$2,$3,...,$9是位置参数,$0指向实际的命令、程序、shell脚本或函数。
在一个函数中的$0,$2等由函数本身使用,可能不会在调用函数的shell脚本环境中出现。
15 shift命令
shfit命令用于将位置参数向左移动,例如shift命令使得$2成为$1。
也可以使用shift移动多个位置,shift 3使得$4移动到$1的位置。
16 特殊参数$*和$@
$*和$@允许一次访问所有的命令行参数。
除非使用双括号把它们括起来,否则$*和$@具有相同的功能。
"$*"将整个参数列表作为一个参数来获取
"$@"获取整个参数列表,并将其分割成不同的参数
17 双引号"、符号'和`
在允许字符替换或命令替换的语句中,可以使用双引号,定义包含空格的变量也需要使用双引号"
不允许字符替换或命令替换的语句中可以使用'。使用'括起来的目的是希望使用正文文本,而不进行任何替换。
在希望执行某个命令或脚本并替换其输出结果使用`。
18 在Solaris中使用awk
Solaris中的awk为nawk,在写脚本的时候可以加入如下代码
case $(uname) in
SunOS) alias awk=nawk
;;
esac
19 正确使用echo命令
比如在有的shell中,echo -e "\n"换行
有的是echo "\n"就可以了
如果脚本使用的*/bin/bash,可以添加如下语句
case $SHELL in
*/bin/bash ) alias echo="echo -e"
;;
esac
20 shell脚本中的数学
21 内置的数学函数
22 文件权限、suid和sgid程序
23 在远程主机上运行命令
24 设置陷阱
若某个程序在其正常结束之前被终止,通常情况下可以捕捉到一个退出信号。
该退出信号称为一个陷阱(trap)。
25 用户信息命令
who
w
last
26 ps命令
ps可以显示当前系统进程的信息
jps是jdk提供的一个查看当前java进程的小工具
27 与用户通信
28 统一大写或小写文本以方便测试
tr和typeset
29 检测返回代码
运行任何命令时,系统都会返回一个有关前一条命令被执行命令的响应,称为返回代码(return code)。
Shell脚本编程入门到放弃的更多相关文章
- 08 bash特性--shell脚本编程入门
shell脚本编程入门 编程语言介绍 编程语言分为:机械语言.汇编语言和高级语言: 计算机能识别的语言为机械语言,而人类能学习的并且能够方便掌握的为高级语言,所以,我们所编写的程序就要通过编译来转换成 ...
- shell脚本编程入门
Linux的Shell种类众多,这里我们关注的重点是Bash. 基本语法 环境变量$PATH IO重定向: 以<改变标准输入 如:tr -d '\r' < dos-file.txt 以& ...
- Shell脚本编程入门(一) 分类: 学习笔记 linux ubuntu 2015-07-09 21:06 29人阅读 评论(0) 收藏
最近在学shell,记录一下. if语句的使用: 1.判断两个参数大小 #!/bin/sh #a test about if statement a=10 b=20 if [ $a -eq $b ]; ...
- Shell脚本编程入门(一)
最近在学shell,记录一下. if语句的使用: 1.判断两个参数大小 #!/bin/sh #a test about if statement a=10 b=20 if [ $a -eq $b ]; ...
- 5个Shell脚本编程入门练习例子
例子一:绘制特殊图形 复制代码代码如下: #!/bin/bash MAX_NO=0 echo -n "Enter Number between (5 to 9) : " read ...
- Shell脚本编程30分钟入门
Shell脚本编程30分钟入门 转载地址: Shell脚本编程30分钟入门 什么是Shell脚本 示例 看个例子吧: #!/bin/sh cd ~ mkdir shell_tut cd shell_t ...
- Shell脚本编程学习入门 02
Shell脚本编程学习入门是本文要介绍的内容,我们可以使用任意一种文字编辑器,比如gedit.kedit.emacs.vi等来编写shell脚本,它必须以如下行开始(必须放在文件的第一行): #! ...
- Shell脚本编程学习入门 01
从程序员的角度来看, Shell本身是一种用C语言编写的程序,从用户的角度来看,Shell是用户与Linux操作系统沟通的桥梁.用户既可以输入命令执行,又可以利用 Shell脚本编程,完成更加复杂的操 ...
- Shell脚本编程30分钟入门(小结)(转)
原文链接https://www.jb51.net/article/161028.htm 什么是Shell脚本 Shell脚本(英语:Shell script),又称Shell命令稿.程序化脚本,是一种 ...
随机推荐
- [ACM] POJ 3258 River Hopscotch (二分,最大化最小值)
River Hopscotch Time Limit: 2000MS Memory Limit: 65536K Total Submissions: 6697 Accepted: 2893 D ...
- 判断是否为SIM卡联系人
判断是否为SIM卡联系人 在AsyncQueryContacts类中. private List<TxrjAccount> accounts = new ArrayList<Txrj ...
- SVN标准开发布局目录,trunk,branches,tags用法详解
http://www.cnblogs.com/newstar/archive/2011/01/04/svn.html 关于 SVN 目录结构 Subversion有一个很标准的目录结构,是 ...
- JSP开发中对jstl的引用方式(标签库引用)
创建标签库引用文件taglibs.inc 一 采用本地标签库的taglibs.inc文件 <%--struts库标签 --%> <%@ taglib uri="/WEB-I ...
- pythonl练习笔记——爬虫的初级、中级、高级所匹配的知识
1 初级爬虫 (1)Web前端的知识:HTML, CSS, JavaScript, DOM, DHTML, Ajax, jQuery,json等: (2)正则表达式,能提取正常一般网页中想要的信息,比 ...
- centos7 搭建go环境
下载go #cd /home #mkdir app #cd app #wget https://storage.googleapis.com/golang/go1.9.linux-amd64.tar. ...
- 用HTTP协议传输媒体文件 学习
用HTTP协议传输媒体文件可以分两个阶段,第一个阶段是Progressive Download(渐进式下载方式)阶段,第二个阶段是HTTP streaming(HTTP流化)阶段.其中,第一个阶段可以 ...
- 傅立叶级数(Fourier Series)和周期现象
一.前言 如果你仔细观察,工作和生活中充满了周期现象:旁边linux driver工程师在调试audio driver的时候播放的1kHz的正弦信号,周末去公园游玩,游船推开水面的波纹,硬件工程师调试 ...
- java 又一次抛出异常 相关处理结果演示样例代码
java 又一次抛出异常 相关处理结果演示样例代码 package org.rui.ExceptionTest; /** * 又一次抛出异常 * 在某些情况下,我们想又一次掷出刚才产生过的违例,特别是 ...
- 图解IIS配置过程
环境介绍: 操作系统:win7,64位.IIS7 开发软件:VS2010,32位 图解IIS配置过程: 此过程之前确保已安装了IIS. 1.在"控制面板"中找到"管理工具 ...