linux----shell入门

linux----shell入门

Shell脚本的基本元素:

#!/bin/bash //第一行

#     //表示单行注释如果是多行注释呢,应该如何操作?多行注释如下所示:

:<<BLOCK

中间部分为要省略的内容

BLOCK

Shell脚本的第一行均包含一个以#!为起始标志的文本行,这个特殊的起始标志表示当前文件包含一组命令,需要提交给指定的Shell解释执行。紧随#!标志的是一个路径名,指向执行当前Shell脚本文件的命令解释程序。比如:

#!/bin/bash

再比如:

#!/usr/bin/ruby如果Shell脚本中包含多个特殊的标志行,那么只有一个标志行会起作用。

Shell特殊字符

下面来看看Shell特殊字符。  

•双引号":用来使Shell无法认出除字符$、`、\之外的任何字符或字符串,也称之为弱引用。  

•单引号':用来使Shell无法认出所有的特殊字符,也称之为强引用。  

•反引号`:优先执行当前命令。  

•反斜杠\:有两种作用,一种是用来使Shell无法认出其后的字符,使其后的字符失去特殊的含义,如有特殊含义的字符$,也称为转义符。另外,如果放在指令前,有取消别名的作用,例如在“\rm/home/yhc/*.log”中,rm指令前加上\,作用是暂时取消别名的功能,将rm指令还原。  

•分号;:允许在一行上放多个命令。  

•&:将命令放于后台执行,建议带上nohup。  

•括号():创建成组的命令。  

•大括号{}:创建命令块。  

•<>&:重定向。  

•*?[]!:表示模式匹配。  

•$:变量名的开头。  

•#:表示注释(第一行除外)。  

•空格、制表符、换行符:当作空白。

变量和运算符

变量是放置在内存中的某个存储单元,这个存储单元里存放的是这个单元的值,这个值是可以改变的,我们称之为变量。

其中,本地变量是在用户现有的Shell生命周期的脚本中使用的,用户退出后变量就不存在了,该变量只用于该用户。

下面都是跟变量相关的命令,这里只是大致地说明下,后面的内容里会有详细的说明,如下所示:

变量名="变量"

readonly 变量名="变量"表示设置该变量为只读变量,这个变量不能被改变。

echo $变量名

set 显示本地所有的变量

unset 变量名 表示清除变量

readonly 显示当前Shell下有哪些只读变量环境变量用于所有用户进程(包括子进程)。Shell中执行的用户进程均称为子进程。不像本地变量只用于现在的Shell。环境变量可用于所有的子进程,它包括编辑器、脚本和应用。

环境变量主目录如下:

$HOME/.bash_profile(/etc/profile)设置环境变量,例句如下:

export test="123"

查看环境变量,命令如下:

env

或者用如下命令:

export

本地变量中包含环境变量。环境变量既可以运行于父进程,也可以运行于子进程中。本地变量则不能运行于所有的子进程中。

变量清除命令如下:

unset 变量名

 

调试Shell脚本

使用bash-x可以调试Shell脚本,bash会先打印出每行脚本,再打印出每行脚本的执行结果,如果只想调试其中几行脚本,可以用set-x和set+x把要调试的部分包含进来,命令如下:

set -x

脚本部分内容

set +x

这个时候可以直接运行脚本,而不需要再执行bash-x了。这个功能在实际工作中非常有用,可以帮助我们调试变量,找出bug点,总之是非常有用的功能,希望大家掌握。

 

退出或出口状态

一个Unix进程或命令运行终止时,将会自动地向父进程返回一个出口状态。如果进程成功执行完毕,将会返回一个数值为0的出口状态。如果进程在执行过程中出现异常而未能正常结束时,将会返回一个非零值的出错代码。

在Shell脚本中,可以利用“exit[n]”命令在终止执行Shell脚本的同时,向调用脚本的父进程返回一个数值为n的Shell脚本出口状态。其中,n必须是一个位于0~255范围内的整数值。如果Shell脚本是以不带参数的exit语句结束执行的,则Shell脚本的出口状态就是脚本中最后执行的那条命令的出口状态。

在Unix系统中,为了测试一个命令或Shell脚本的执行结果,$?内部变量将返回之前执行的最后一条命令的出口状态,这些状态中,0才是正确值,其他非零的值都表示是错误的。

 

posted @ 2017-03-19 21:22 ld1977 阅读(...) 评论(...) 编辑 收藏

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值