因为Shell似乎是各UNIX系统之间通用的功能,并且经过了POSIX的标准化。因此,Shell脚本只要“用心写”一次,即可应用到很多系统上。因此,之所以要使用Shell脚本是基于:

  • 简单性:Shell是一个高级语言;通过它,你可以简洁地表达复杂的操作。
  • 可移植性:使用POSIX所定义的功能,可以做到脚本无须修改就可在不同的系统上执行。
  • 开发容易:可以在短时间内完成一个功能强大又妤用的脚本。

但是,考虑到Shell脚本的命令限制和效率问题,下列情况一般不使用Shell:

  1. 资源密集型的任务,尤其在需要考虑效率时(比如,排序,hash等等)。
  2. 需要处理大任务的数学操作,尤其是浮点运算,精确运算,或者复杂的算术运算(这种情况一般使用C++或FORTRAN 来处理)。
  3. 有跨平台(操作系统)移植需求(一般使用C 或Java)。
  4. 复杂的应用,在必须使用结构化编程的时候(需要变量的类型检查,函数原型,等等)。
  5. 对于影响系统全局性的关键任务应用。
  6. 对于安全有很高要求的任务,比如你需要一个健壮的系统来防止入侵、破解、恶意破坏等等。
  7. 项目由连串的依赖的各个部分组成。
  8. 需要大规模的文件操作。
  9. 需要多维数组的支持。
  10. 需要数据结构的支持,比如链表或数等数据结构。
  11. 需要产生或操作图形化界面 GUI。
  12. 需要直接操作系统硬件。
  13. 需要 I/O 或socket 接口。
  14. 需要使用库或者遗留下来的老代码的接口。
  15. 私人的、闭源的应用(shell 脚本把代码就放在文本文件中,全世界都能看到)。

如果你的应用符合上边的任意一条,那么就考虑一下更强大的语言吧——或许是Perl、Tcl、Python、Ruby——或者是更高层次的编译语言比如C/C++,或者是Java。即使如此,你会发现,使用shell来原型开发你的应用,在开发步骤中也是非常有用的。

什么时候使用Shell相关推荐

  1. jar包部署shell脚本编写,在服务器上部署jar包,在Linux服务器上部署服务,设置编码格式,设置内存管理

    准备步骤: 1.安装java环境,知道java安装目录 2.将jar包拖放或发送至服务器中(目录自定义) 一.编写shell脚本,将以下代码放在shell脚本中,将shell脚本放在jar包同级目录下 ...

  2. Linux shell 学习笔记(16)— shell 入门总结

    1. Shell 变量 Shell 变量包括自定义变量和环境变量: 自定义变量:脚本中自己命名定义的变量,通常为局部变量,其他 Shell 程序不能访问到: 环境变量,操作系统已定义的变量,如 PAT ...

  3. 浅显易懂 Makefile 入门 (08)— 默认 shell (/bin/sh)、命令回显、make参数(-n 只显示命令但不执行,-s 禁止所有回显)、单行命令、多行命令、并发执行

    1. shell 相关 1.1 默认 shell Makefile 所使用的命令是由 shell 命令行组成,他们是一条一条执行的. 多个命令之间要使用分号隔开,Makefile 中的任何命令都要以 ...

  4. Linux shell 学习笔记(12)— linux 信号、后台运行脚本、作业控制、定时运行任务

    1. 处理信号 1.1 Linux 信号 常见的 Linux 信号如下表所示: 信号 值 描述 1 SIGHUP 挂起进程 2 SIGINT 终止进程 3 SIGQUIT 停止进程 9 SIGKILL ...

  5. Linux shell 学习笔记(11)— 理解输入和输出(标准输入、输出、错误以及临时重定向和永久重定向)

    1. 理解输入和输出 1.1 标准文件描述符 Linux 系统将每个对象当作文件处理.这包括输入和输出进程.Linux 用文件描述符(file descriptor)来标识每个文件对象.文件描述符是一 ...

  6. Linux shell 学习笔记(10)— 处理用户输入(命令行读取参数、读取用户输入、超时处理)

    1. 命令行参数 向 shell 脚本传递数据的最基本方法是使用命令行参数.命令行参数允许在运行脚本时向命令行添加数据. $ ./addem 10 30 本例向脚本 addem 传递了两个命令行参数( ...

  7. Linux shell 学习笔记(9)— 循环语句(for、while)以及更改字段分隔符

    1. for 语句 bash shell 中 for 命令的基本格式如以下,$var 变量包含着这次迭代对应的当前列表项中的值. for var in list docommands done 也可以 ...

  8. Linux shell 学习笔记(8)— 使用结构化命令(if-then 语句、数值比较、字符串比较、文件比较、case 语句)

    1. 使用 if-then 语句 最基本的结构化命令就是if-then语句.if-then语句有如下格式. if command then ​ commands fi 或者 if command; t ...

  9. Linux shell 学习笔记(7)— 构建基本脚本(变量、重定向、管道、状态码)

    1. 使用多个命令 如果要两个命令一起运行,可以把它们放在同一行中,彼此间用分号隔开. $ date ; who Mon Feb 21 15:36:09 EST 2014 Christine tty2 ...

  10. Linux shell 学习笔记(5)— 文件权限(添加、修改、删除用户及创建、修改群组)

    1. Linux的安全性 Linux 安全系统的核心是用户账户.每个能进入 Linux 系统的用户都会被分配唯一的用户账户.用户对系统中各种对象的访问权限取决于他们登录系统时用的账户. 用户权限是通过 ...

最新文章

  1. python下载不了-python安装不了
  2. Kettle安装好MYSQL驱动后报用户名密码错误
  3. 2.4g和5g要不要合并_请问千兆路由器,2.4g与5g是双频合一还是分开,该选择哪个?...
  4. 使用markdown语法记录笔记 1613957838
  5. 软件测试——测试基础
  6. Spring 各种包功能
  7. python gui哪个好看_python的GUI选择什么方案比较好?
  8. (二)zookeeper安装
  9. Inav Configurator给F4刷固件进入不了DFU
  10. matlab 密集,matlab – 全局和parfor
  11. 华为手机使用应用沙盒动态修改imsi参数
  12. 基于Word2vec加TextRank算法生成中文新闻摘要(附python代码)
  13. 互联网春节红包的寓言:奇迹如斯,赢家寥寥
  14. 什么样的产品可以做为引流款?请选择这些产品作为引流爆款
  15. LM75AD温度传感器的应用(2)
  16. WIndows内核学习笔记:分页机制——PAE分页模式
  17. 理清C++常量指针和指针常量这团乱麻
  18. 官方确认索尼PS5创史上最佳首发记录 国行版可能要2021年见
  19. 怎么看计算机硬件配置情况,怎么样查看电脑配置?5种方法查看电脑硬件配置好坏图文详解...
  20. div+css静态网页设计——代码质量好-海贼王(6页) 学生漫画网页设计模板代码 漫画网页制作模板 学生简单动漫网站设计成品

热门文章

  1. ReactJS入门之环境搭建以及编写HelloWorld程序
  2. c语言如何获取按键,c语言获得键盘的按键
  3. 如何在 IntelliJ IDEA 中整合 Maven、Tomcat 部署 Web 应用
  4. 电平转换电路(三极管共射极)
  5. myeclipse中的一些设置
  6. Javascript设计模式之中介者模式
  7. (一)Hyperledger Fabric 1.1安装部署-基础环境搭建
  8. Windows XP 专业版与家庭版的区别
  9. 《从零开始系列-Project 2010视频教程 (102课时)》 教你进行有效的项目管理
  10. 安装memcached服务和PECL关于memcache的两个PHP扩展