linux shell脚本学习笔记一 脚本文件的构建

来源:互联网 发布:广州seo外包 编辑:程序博客网 时间:2024/04/26 22:19

近期因工作需要开始学习shell脚本,以完成一些日常工作中一些复杂繁琐的操作。从零开始不求快,但求扎实基础。

下面是学习笔记,一来是整理巩固,二来便于以后查看;
  1. shell脚本文件构建

shell脚本第一行必须指定要使用的shell。格式为:

#!/bin/bash


shell脚本中#号通常是用来注释,但第一行例外,#号后跟!用来告诉shell用哪个shell运行脚本(常用的shell脚本有bash shell


  1. 运行脚本文件


运行脚本文件两种方法:

1shell脚本文件所处的木了添加到path环境变量中;

2在提示符中用绝对或相对路径来引用shell脚本文件


一般引用当前目录下的脚本文件只要在shell中用单点操作符:

./test

有可能脚本没有执行权限,修改test权限:

chmodu+x test


ps:在创建test文件时,umask值决定了新文件的默认权限设置


  1. 打印信息

C语言printf类似 ,shell也可以打印信息:echo

egecho Let’s see ifthis is work

输出中 ‘ 不见了

要打印一种引号,需要用另外一种引号将字符串圈起来

eg: echo “Let’ssee if this is work ”

这样就能打印出想要的结果


如果想在同一行显示一个文本字符串作为命令输出可用–n

  1. 变量

  1. 环境变量

shell维护着一组环境变量,用来记录特定的系统信息。比如系统的名称等。

可以用set来显示完整的活动的环境变量

可以在环境变量名称前加$来在脚本中引用这些环境变量eg

echo HOME$HOME

ps:要打印有特殊含义的符号需转义符号eg

echo “ The cost ofthe item \$15”


  1. 用户变量

用户变量用来临时存储数据并在整哥脚本中使用,

用户变量可以时任何不超过20个字母,数字或下划线的文本字符串

用户变量区分大小写 Varvar时不同的变量

用户变量的赋值时通过=;在变量,等号,和值之间不能出现空格

引用一个用户变量需要用$;而对变量赋值时不需要用$

eg:

value1=10

value2=$value1


  1. 反引号

反引号(`)美式键盘,反引号(`)和波浪线(~)位于同一键位

反引号允许你将命令的输出赋给变量

eg

testing=`date`

  1. 重定向输入输出

输出重定向:

将命令的输入重定向到文件(如果文件存在会覆盖数据):

command> outputfile

追加方式:

command>>outputfile


输入重定向:

将文件输入到命令

command<inputfile

内联输入重定向:(从命令行输入要重定向的数据)

eg:

wc<<EOF

>test string 1

>EOF

7.    退出状态码

shell中运行的每个命令都使用了退出状态码,退出状态码是一个0~255之间的整数值,在命令结束时由命令传给shell。

linux 提供了$?专属变量来保存上个执行命令的退出状态码。

0        命令成功结束

1        通用未知错误

126 命令不可执行

127 没找到命令

130  Ctrl+C终止

255  退出状态码越界

 

8.    exit命令

exit 命令允许你在脚本结束时指定一个退出状态码。


0 0