用户可以用任何编辑程序来编写Shell程序。因为Shell程序是解释执行的,所以不需要编译成目的程序。按照Shell编程的惯例,以 bash为例,程序的第一行一般为“#!/bin/bash”,其中 # 表示该行是注释,叹号 ! 告诉Shell运行叹号之后的命令并用文档的其余部分作为输入,也就是运行/bin/bash并让/bin/bash去执行Shell程序的内容。

执行Shell程序的方法有3种。

1.sh Shell程序文件名

这种方法的命令格式为:

bash Shell程序文件名

这实际上是调用一个新的bash命令解释程序,而把Shell程序文件名作为参数传递给它。新启动的Shell将去读指定的文件,可执行文件中列出的命令,当所有的命令都执行完后结束。该方法的优点是可以利用Shell调试功能。

2.sh

格式为:

bash< Shell程序名

这种方式就是利用输入重定向,使Shell命令解释程序的输入取自指定的程序文件。

3.用chmod命令使Shell程序成为可执行的

一个文件能否运行取决于该文档的内容本身可执行且该文件具有执行权。对于Shell程序,当用编辑器生成一个文件时,系统赋予的许可权都是644(rw-r-r--),因此,当用户需要运行这个文件时,只需要直接键入文件名即可。

在这3种运行Shell程序的方法中,最好按下面的方式选择:当刚创建一个Shell程序,对它的正确性还没有把握时,应当使用第一种方式进行 调试。当一个Shell程序已经调试好时,应使用第三种方式把它固定下来,以后只要键入相应的文件名即可,并可被另一个程序所调用。

4.bash程序的调试

在编程过程中难免会出错,有的时候,调试程序比编写程序花费的时间还要多,Shell程序同样如此。

Shell程序的调试主要是利用bash命令解释程序的选择项。调用bash的形式是:

bash -选择项Shell程序文件名

几个常用的选择项是:

-e 如果一个命令失败就立即退出。

-n 读入命令但是不执行它们。

-u 置换时把未设置的变量看做出错。

-v 当读入Shell输入行时把它们显示出来。

-x 执行命令时把命令和它们的参数显示出来。

上面的所有选项也可以在Shell程序内部用“set -选择项”的形式引用,而“set +选择项”则将禁止该选择项起作用。如果只想对程序的某一部分使用某些选择项时,则可以将该部分用上面两个语句包围起来。

(1)未置变量退出和立即退出

未置变量退出特性允许用户对所有变量进行检查,如果引用了一个未赋值的变量就终止Shell程序的执行。Shell通常允许未置变量的使用,在 这种情况下,变量的值为空。如果设置了未置变量退出选择项,则一旦使用了未置变量就显示错误信息,并终止程序的运行。未置变量退出选择项为-u。

当Shell运行时,若遇到不存在或不可执行的命令、重定向失败或命令非正常结束等情况时,如果未经重新定向,该出错信息会显示在终端屏幕上, 而Shell程序仍将继续执行。要想在错误发生时迫使Shell程序立即结束,可以使用-e选项将Shell程序的执行立即终止。

(2)Shell程序的跟踪

调试Shell程序的主要方法是利用Shell命令解释程序的-v或-x选项来跟踪程序的执行。-v选择项使Shell在执行程序的过程中,把 它读入的每一个命令行都显示出来,而-x选择项使Shell在执行程序的过程中把它执行的每一个命令在行首用一个+加上命令名显示出来。并把每一个变量和 该变量所取的值也显示出来。因此,它们的主要区别在于:在执行命令行之前无-v,则显示出命令行的原始内容,而有-v时则显示出经过替换后的命令行的内 容。

除了使用Shell的-v和-x选择项以外,还可以在Shell程序内部采取一些辅助调试的措施。例如,可以在Shell程序的一些关键地方使 用echo命令把必要的信息显示出来,它的作用相当于C语言中的printf语句,这样就可以知道程序运行到什么地方及程序目前的状态。

Linux运行shell程序的方法相关推荐

  1. linux编写运行shell程序,Linux的Shell编程运行Shell程序的方法有哪些呢?

    用户可以用任何编辑程序来编写Shell程序.因为Shell程序是解释执行的,所以不需要编译成目的程序.按照Shell编程的惯例,以 bash为例,程序的第一行一般为"#!/bin/bash& ...

  2. python编程在哪里写程序-教你如何编写、保存与运行Python程序的方法

    第一步 接下来我们将看见如何在 Python 中运行一个传统的"Hello World"程序.Python教程本章将会教你如何编写.保存与运行 Python 程序. 通过 Pyth ...

  3. kali 运行java_kali linux运行java程序

    我一般是在windows上运行java程序.这次在kali linux上运行java程序.在我们安装的kali linux2.0是自带了OpenJdk.下面是学习啦小编跟大家分享的是kali linu ...

  4. ‘wmic‘ 不是内部或外部命令,也不是可运行的程序 解决方法

    'wmic' 不是内部或外部命令,也不是可运行的程序 解决方法 参考文章: (1)'wmic' 不是内部或外部命令,也不是可运行的程序 解决方法 (2)https://www.cnblogs.com/ ...

  5. 虚拟机中被提示请不要在虚拟机中运行此程序 解决方法,“Themida Sorry, this application cannot run...

    虚拟机中被提示"请不要在虚拟机中运行此程序" 解决方法. 英文提示:"Themida Sorry, this application cannot run under a ...

  6. python shell运行当前程序、可以按下_Python下调用Linux的Shell命令的方法

    有时候难免需要直接调用Shell命令来完成一些比较简单的操作,比如mount一个文件系统之类的.那么我们使用Python如何调用Linux的Shell命令?下面来介绍几种常用的方法: 1. os 模块 ...

  7. 嵌入式Linux上没有x-window系统环境运行qt程序的方法

    在linux上运行应用程序需要x-window桌面环境的支持,一般在最小linux内核里是不具备这个东西的,但是QT的特性是跨平台,只需要加上"qws"参数就可以了 如: ./ap ...

  8. LINUX中运行java程序的方法

    要想在linux中运行java的项目需要先将项目打包成war包或者jar包. 其中打包成war包需要将war包部署到tomcat服务器上才能运行.而打包成jar包可以直接使用java命令执行. 在li ...

  9. python输入完怎么运行-教你如何编写、保存与运行Python程序的方法

    第一步 接下来我们将看见如何在 Python 中运行一个传统的"Hello World"程序.Python教程本章将会教你如何编写.保存与运行 Python 程序. 通过 Pyth ...

最新文章

  1. 学习笔记-express路径问题
  2. python --time()函数
  3. MqSql的加锁分析
  4. coreldraw 复制填充渐变色
  5. 企业级负载均衡如何实现
  6. Mendix宣布推出低代码人工智能与机器学习功能
  7. Mobile-LPR——面向移动端的准商业级车牌识别库
  8. 在 Centos 7 ssh登录出现locale异常
  9. Ubuntu 20.04 LTS 开发周期的重要任务:移除 Python 2
  10. 创建5个组,然后把30个用户分别加入到5个组中
  11. jQuery 之 niceScroll
  12. java毕业设计房屋租赁管理系统Mybatis+系统+数据库+调试部署
  13. vue echarts饼状图内部显示百分比
  14. 1、Dreamweaver工具的使用
  15. Pandas 筛选数据的 8 个神操作
  16. 是什么原因才导致网站打开速度慢?
  17. ab.exe压力测试
  18. VC 不愿承认的 4 个暗黑事实
  19. 线性代数的本质--对线性空间、向量和矩阵的直觉描述
  20. Office2010,PPT,EXCEL如何插入日历控件

热门文章

  1. 梦想Android版CAD控件2018.7.26更新
  2. VMWARE (VMware vmware ) 学习使用笔记 --苟声
  3. asp考试成绩分析系统
  4. 数据分析常用的四大战略分析工具
  5. YGBOOK v6.14免授权破解版/全自动小说站源码
  6. LED温湿度传感器大屏可视化随时掌握温湿度数据变化
  7. Linux shell脚本中if的“-e,-d,-f” 说明
  8. MySQL JSON 常用函数
  9. 自由能专题1:原理与方法
  10. 腾讯云从业者资料分享超全(呕心沥血整理)