1. 概述

Shell脚本命令的工作方式有两种:交互式和批处理。

交互式(Interrctive): 用户每输入一条命令就立即执行。

批处理(Batch): 由用户事先编写好一个完整的 Shell 脚本, Shell 会一次性执行脚本中诸多的命令。

Shell脚本文件的名称可以任意。但为了避免被误以为是普通文件,建议将 .sh 后缀加上,以表示是一个脚本文件。

2. 第一个简单的shell脚本

[root@rockman 0614]# vi example.sh
#!/bin/bash
#For example by rock
pwd
ls -l
#第一种执行方法 bash 脚本文件名及其参数 或者 sh 脚本文件名及其参数
[root@rockman 0614]# bash example.sh
/home/hk/0614
total 20
-rw-r--r--. 1 root root 65 Jun 14 17:32 aaa.txt
-rw-r--r--. 1 root root 0 Jun 14 16:17 abc.txt
-rw-r--r--. 1 root root 0 Jun 14 16:23 bbb.txt
-rw-r--r--. 1 root root 0 Jun 14 16:27 ccc.txt
-rw-r--r--. 1 root root 43 Jun 14 17:51 example.sh
-rw-rw-r--. 1 hk hk 4731 Jun 14 09:10 openman.txt
-rw-rw-r--. 1 hk hk 22 Jun 14 09:11 practice.txt
#第二种执行方法 先让Shell文件权限加上可执行,然后直接运行
[root@rockman 0614]# chmod u+x example.sh
[root@rockman 0614]# ./example.sh
/home/hk/0614
total 20
-rw-r--r--. 1 root root 65 Jun 14 17:32 aaa.txt
-rw-r--r--. 1 root root 0 Jun 14 16:17 abc.txt
-rw-r--r--. 1 root root 0 Jun 14 16:23 bbb.txt
-rw-r--r--. 1 root root 0 Jun 14 16:27 ccc.txt
-rwxr--r--. 1 root root 43 Jun 14 17:51 example.sh
-rw-rw-r--. 1 hk hk 4731 Jun 14 09:10 openman.txt
-rw-rw-r--. 1 hk hk 22 Jun 14 09:11 practice.txt
#第三种方法 source 脚本文件名及其参数 或者 . 脚本文件名及其参数
[root@rockman 0614]# source example.sh
/home/hk/0614
total 20
-rw-r--r--. 1 root root 65 Jun 14 17:32 aaa.txt
-rw-r--r--. 1 root root 0 Jun 14 16:17 abc.txt
-rw-r--r--. 1 root root 0 Jun 14 16:23 bbb.txt
-rw-r--r--. 1 root root 0 Jun 14 16:27 ccc.txt
-rw-r--r--. 1 root root 43 Jun 14 17:51 example.sh
-rw-rw-r--. 1 hk hk 4731 Jun 14 09:10 openman.txt
-rw-rw-r--. 1 hk hk 22 Jun 14 09:11 practice.txt

3. 可以接受用户参数的脚本文件

Shell内置可用于接受参数的变量,变量之间可以使用空格间隔。

$0		当前shell脚本程序的名称
$# 总共有几个参数
$* 所有位置的参数值
$? 显示上一次命令执行的返回值
$1 第一个位置的参数值
$N 第N个位置的参数值
[root@rockman 0615]# cat example.sh
#!/bin/bash
echo "当前脚本名称为$0"
echo "总共有$#个参数,分别是$*。"
echo "第1个参数为$1, 第二个参数为$2。" [root@rockman 0615]# sh example.sh one two three four five six
当前脚本名称为example.sh
总共有6个参数,分别是one two three four five six。
第1个参数为one, 第二个参数为two。

13Shell脚本—编写简单脚本的更多相关文章

  1. 编写SHELL脚本--编写简单脚本

    1.简单脚本文件hello.sh,内容如下 #!/bin/bash pwd ls -al 执行脚本:bash hello.sh  或者使用root命令:  ./hello.sh 2.接受用户参数 $0 ...

  2. SecureCRT自动登陆到服务器的脚本以及脚本编写简单说明

    http://blog.csdn.net/marising/article/details/6409196 Secure用SSH登陆服务器时,如果服务器较多,登陆一次很麻烦,所以,可以自己编写VBSc ...

  3. 学习 Linux,101: 自定义或编写简单脚本【转】

    转自:http://www.ibm.com/developerworks/cn/linux/l-lpic1-105-2/index.html 学习如何使用标准的 shell 语法.循环和控制结构,以及 ...

  4. shell编程之服务脚本编写,文件锁以及信号捕获

    shell脚本编程是linux运维工程师必备的技能,也是非常重要的一个技能,所以把shell编程学好,只有好处.基础语法我也就不讲了,学过C语言这些语言的,稍微看一下就能明白shell编程的基础,所以 ...

  5. 编写简单的辅助脚本来在 Google 表格上记账

    我的第二份工作入职在即,而这一次则真的是完全跑到了一个陌生的城市了.租房,购置相关用品,还尚未工作钱就花掉一堆.尽管我个人之前一直都没有过记账的习惯,但为了让自己能够搞清楚自己的钱都花在哪里了,于是还 ...

  6. python模块之sys和subprocess以及编写简单的主机扫描脚本

    python模块之sys和subprocess以及编写简单的主机扫描脚本 1.sys模块 sys.exit(n)  作用:执行到主程序末尾,解释器自动退出,但是如果需要中途退出程序,可以调用sys.e ...

  7. BAT脚本编写教程简单入门篇

    BAT脚本编写教程简单入门篇 批处理文件最常用的几个命令: echo表示显示此命令后的字符 echo on  表示在此语句后所有运行的命令都显示命令行本身 echo off 表示在此语句后所有运行的命 ...

  8. ROS Learning-010 beginner_Tutorials 编写简单的启动脚本文件(.launch 文件)

    ROS Indigo beginner_Tutorials-09 编写简单的启动脚本文件 我使用的虚拟机软件:VMware Workstation 11 使用的Ubuntu系统:Ubuntu 14.0 ...

  9. 小鸟初学Shell编程(二)编写简单的Shell脚本

    Shell脚本 编写Python.PHP脚本通常需要掌握语言的函数,那么Shell脚本则不需要,只需要掌握Linux命令就可以编写Shell脚本,因为Shell脚本就是由多个Linux命令组成,通过将 ...

随机推荐

  1. python进程之理论

    ********进程理论知识******** ****操作系统背景知识**** 顾名思义,进程及正在执行的一个过程,进程是对正在运行程序的一个抽象. 进程的概念起源于操作系统,是操作系统最核心的概念, ...

  2. Codeforces Round 56-B. Letters Rearranging(思维)

    time limit per test 1 second memory limit per test 256 megabytes input standard input output standar ...

  3. python之字典的相关操作

    一.什么是字典 dict 用{}表示,用来存放键值对数据 {key:value} 键:具有唯一性,不能重复,不可变 必须是可哈希的(不可变的数据类型) 字典是无序的,没有索引 值: 没有任何限制 已知 ...

  4. Ubuntu 16.04 LTS安装Docker

    一.安装Docker的先决条件 1.运行64位CPU构架的计算机(目前只能是x86_64和amd64),请注意,Docker目前不支持32位CPU.2.运行Linux 3.8或更高版本内核.一些老版本 ...

  5. 运行node提示:events.js:160 throw er; // Unhandled 'error' event

    运行node时遇到下述提示: events.js:160  throw er; // Unhandled 'error' event或者events.js:160       throw er; // ...

  6. LinkedList源码及原理

    简介 内部结构分析 LinkedList源码分析 构造方法 添加(add)方法 根据位置取数据的方法 根据对象得到索引的方法 检查链表是否包含某对象的方法: 删除(remove/pop)方法 Link ...

  7. Hadoop实战项目:小文件合并

    项目背景 在实际项目中,输入数据往往是由许多小文件组成,这里的小文件是指小于HDFS系统Block大小的文件(默认128M),早期的版本所定义的小文件是64M,这里的hadoop-2.2.0所定义的小 ...

  8. mysql通过sql语句判断某个字段在一张表中是否存在

    应用场景: 我有一张表,表里面都是用户用来激活游戏的激活码,当用户在前端页面输入激活码时,要查询数据表中是否有这条激活码,如果有就返回"1",没有则返回"0". ...

  9. MVC下载文件方式 包括网络地址文件

    MVC下载文件方式 方式一: public FileStreamResult DownFile(string filePath, string fileName){      string absol ...

  10. EF5 通用数据层 增删改查操作,泛型类

    using System; using System.Collections.Generic; using System.Data.Entity.Infrastructure; using Syste ...