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. spring 公用异常处理

    1. 采用spring boot注解方式,如果采用swagger的话会导致swagger不可用 1.1  spring 配置如下 #出现错误时, 直接抛出异常 spring.mvc.throw-exc ...

  2. 福昕阅读器把pdf某一页保存出来

    第一步: 第二步: 第三步: 第四步:点击保存即可

  3. Jquery属性操作(入门二)

    ********JQuery属性相关的操作******** 1.属性 属性(如果你的选择器选出了多个对象,那么默认只会返回出第一个属性). attr(属性名|属性值) - 一个参数是获取属性的值,两个 ...

  4. python进阶12 Redis

    python进阶12 Redis 一.概念 #redis是一种nosql(not only sql)数据库,他的数据是保存在内存中,同时redis可以定时把内存数据同步到磁盘,即可以将数据持久化,还提 ...

  5. openSUSE 跨版本升级

    准备工作 此方法通过网络跨版本升级,适合 Leap 升级到下一个发行版(如 42.2 升级到 42.3),也适合 Leap 升级为 Tumbleweed.首先必须确定升级的时候有足够的时间.靠谱的更新 ...

  6. 078 Subsets 子集

    给定一组不同的整数 nums,返回所有可能的子集(幂集).注意事项:该解决方案集不能包含重复的子集.例如,如果 nums = [1,2,3],结果为以下答案:[  [3],  [1],  [2],  ...

  7. EF 记录执行的sql语句

    最近做了个中等的项目,数据不会很多,开发时间比较紧迫,所以用了EF的框架. 在使用过程中,发现有时候执行的结果不如预期,想看看执行的sql语句为何,遍查找资料,在网上找到了相关辅助类,拿来使用,部署到 ...

  8. Redis set(集合)

    Redis 的 Set 是 String 类型的无序集合,元素不允许重复. Redis 中集合是通过哈希表实现的,所以添加,删除,查找的复杂度都是 O(1). 集合中最大的元素数为 232 - 1 ( ...

  9. 四道java语言练习基础题:

    一.==符的使 首先看一段比较有意思的代码 Integer a = 1000,b=1000; Integer c = 100,d=100; public void mRun(final String ...

  10. Android商城开发系列(二)——App启动欢迎页面制作

    商城APP一般都会在应用启动时有一个欢迎界面,下面我们来实现一个最简单的欢迎页开发:就是打开商城App,先出现欢迎界面,停留几秒钟,自动进入应用程序的主界面. 首先先定义WelcomeActivity ...