linux系统编程开篇——shell脚本
系统编程将要学习的内容包括:shell脚本、文件、进程、网络、数据库和网页(html、Db)。
一、shell脚本编程
1、本质:shell命令的集合。
2、作用:完成配置。
3、原理:命令——>shell(命令解释器)——>kernel(内核),发送完成后最后再依次返回到命令。其中shell在linux中具体的应用程序为Bash;在unix中还有Ksh、Csh、Ash。
4、编写流程:
(1)vim xx.sh 文件内包括#!/bin/bash(说明用的具体命令解释器)
(2)编写脚本 (echo相当于c中的printf,可输出内容)
(3)chmod +x XX.sh(给文件加可执行权限)
(4)./XX.sh(运行)
注意:当执行命令 ll 后,会显示文件详细情况。


文件7种类型:- 普通文件;d 目录;b 块设备;c 字符设备;l 软链接;p 管道;s 套接字(网络)。
对于作者、组用户、其他人;可通过可读/写/执行表示1,不可表示0,来得出几位八进制数。用来在给文件加可执行权限时使用。eg:
二、shell变量
1、系统环境变量 (env命令)
例如:PATH:系统路径;保存当前工作的默认路径。
2、位置变量
命令$0:脚本文件名;$1:传入脚本第一个参数......$(10):传入脚本第10个参数......; $#:传入参数的个数(不包含自己);$?:上一句shell命令执行的结局(返回0一般表示成功);$$:当前shell的PID(进程编号)。


例如:类比c中 int main(int argc , char *argv[ ]) 命令行参数

3、(自定义变量)shell脚本输入输出
脚本中,为弱类型语言,不用定义变量。
read(相当于scanf);echo(打印输出):(1)当echo后跟"双引号",遇到$变量,则输出变量中的值;(2)当echo后跟'单引号',遇到$变量依然打印$变量;(3)当echo后跟`反单引号`,将中间的字符串按照命令打印。
写变量时不加$,读变量时要加$。
定义的变量仅在该命令窗口、文件下应用(类似于局部变量)。想在其他窗口下应用,可变为环境变量,用PATH命令。
例如:实现+ - * /运算 注意:乘号要用/*,不能用*;*在shell中是通配符,表示显示所有的指定后缀文件。


四、分支语句
1、if语句
条件用:[表达式] 或 test 表达式(为0是真);

用man查命令、函数等,共七章左右;章节1为命令,2、3为函数。
Test(1):
1)INTEGER1 -eq INTEGER2 表示等于;INTEGER1 -ne INTEGER2 表示不等于;
INTEGER1 -ge INTEGER2 表示大于等于;INTEGER1 -gt INTEGER2 表示大于;
INTEGER1 -le INTEGER2 表示小于等于;INTEGER1 -lt INTEGER2 表示等小于;
2)字符串 -n STRING 表示 !=0; -z STRING 表示 ==0; STRING = STRING ;
3)-b FILE 表示文件存在并为块设备; -c FILE 表示文件存在并为字符设备;
-d FILE 表示文件存在并为目录; -e FILE 判断文件是否存在;
-f FILE 表示文件存在并为普通文件; -h/-l FILE 表示文件存在并为软链接(快捷方式);
-p FILE 表示文件存在并为管道文件; -s FILE 表示文件存在并为套接字(网络);
4)-a 表示and; -o 表示or。
注意:输出定向符' > '(写文件);/dev 硬件设备(sro光驱、sda硬盘);cat直接读出文件内容。



2、case(多分支语句)


3、循环语句(while、for、until(条件为假时执行))




注意:(1)seq [OPTION(选项,可有可无)]...FIRST(开始) INCREMEN(每位数间隔多少) LAST(结束),表示打印一个数字序列。
(2)想要对齐代码时,快捷键,可选中全部内容按 ' = ' 键。在命令模式下,gg光标到代码最上面;GG光标到代码最下面。
更多推荐



所有评论(0)