Linux入门笔记(2)

  1. 循环结构
  • while语句

while test-commands  ##为真执行

do

commands

done

快捷键Ctrl+D(代表文件结束)结束输入

  • until语句

until test-commands   ##为假(非0)执行

do

commands

done

  • for语句

for variable [in list]

do

commands

done

seq: 该命令接受一个数字范围,并把它转换成一个列表。

$ seq 9  –> 1,2,3…9

例:for i in ‘seq 9’

  1. 读取用户输入

read命令接受一个变量名作为参数,把从标准输入接收到的信息存放在这个变量中,如果没有提供变量名,那么读取的信息将存放在变量REPLY中。

默认情况下,BASH只认识空格、制表符和换行符。

$ ./ read_char

Hello World!

Hello

World!

  1. 脚本执行命令
  • exit命令

exit命令强行退出一个脚本,并且向调用这个脚本的进程返回一个整数值。

# ! /bin/bash

exit 1

  • trap命令

trap命令用来不活一个信号

$ ./ trap –INT   ##执行trap-INT脚本

  1. 创建命令表

命令表的形式:

a&&b  “与”命令表,当且仅当a执行成功,才执行b

a||b   “或”命令表,当且仅当a执行b失败,才执行b

a;b    顺序命令表,先执行a,再执行b

  1. 其他有用的shell编程工具
  • cut命令

cut命令用于从输入的行中提取指定的部分(不改变源文件)

-c 提取一行中指定范围的字符

$ cut –c 3-6 city.txt  ##提取city.txt中每行的第3-6个字符

-f 提取输入行中指定的字段,字段和字段之间的分隔符有-d参数指定,如果没有-d参数,那么默认的使用制表符(TAB)作为分隔符。

$ cut –d “ ” –f2 city.txt   ##提取并输出city.txt中每一行的第二个字段(城市区号)

  • diff命令

确定两个版本的源文件中存在哪些修改

$ diff badpro badpro2

  • sort命令

sort命令接受输入行,并对其按照字母顺序进行排列(不改变源文件)

$ sort city.txt

-r 颠倒排列顺序,以字母降序排列

$ sort –r city.txt

-k 指定按照另一个字段排序

$ sort –k 2 –r city   ##按照city.txt每一行的第二个字段对输出执行逆向排序