在shell编程的基础知识中,介绍说shell程序必须以"#!/bin/sh"开始,也就认为是这样了。

虽然知道在shell中以"#"开始的语句都是注释,但也从没认为"#!/bin/sh"也是注释,就像对C语言程序必须有main函数一样毫无怀疑。

但前些时候又听说"#!/bin/sh"也是注释,可有可无,当时觉得真是一个失败,连基本的语法都分不清。

前几天借了一本书,才真正认识了"#!/bin/sh"。

shell编程是以"#"为注释,但对"#!/bin/sh"却不是。

"#!/bin/sh"是对shell的声明,说明你所用的是那种类型的shell及其路径所在。

如果没有声明,则脚本将在默认的shell中执行,默认shell是由用户所在的系统定义为执行shell脚本的shell。

比如:如果脚本被编写为在Korn Linux中运行,而默认运行shell脚本的为C shell csh,则上述脚本在执行过程中很可能失败。

所以建议大家就把"#!/bin/sh"当成C 语言的main函数一样,写shell必须有,以使shell程序更严密。

即: #!/bin/sh 是指此脚本使用/bin/sh来解释执行,#!是特殊的表示符,其后面根的是此解释此脚本的shell的路径。

其实第一句的#!是对脚本的解释器程序路径,脚本的内容是由解释器解释的,我们可以用各种各样的解释器来写对应的脚本。

比如说/bin/csh脚本,/bin/perl脚本,/bin/awk脚本,/bin/sed脚本,甚至/bin/echo等等。

真的能写一个/bin/echo的脚本文件吗?例子:

代码:

#!/bin/echo –e

这只有一行的程序(实际上它也只能是一行,echo程序并不是被设计成像awk那样的编程语言,能写成源程序文件)命名为myecho,加上权限后执行它:

代码:

$ ./myecho "hi\a" ./myecho hi

如果echo支持-e选项并且你工作的环境还算安静,在得到上面的结果时,应该听到清脆的终端响铃。但这种程序是毫无作用的。

linux bin sh命令,linux shell中#!bin/sh的理解相关推荐

  1. linux shell bin sh,linux shell中#bin/sh的理解

    摘要 腾兴网为您分享:linux shell中#bin/sh的理解,支付旭尊,小熊到家,天天美剧,淘金宝等软件知识,以及维棠flv视频软件,usb抓包工具,红警2无敌,ucbug造梦西游4,壁纸工作室 ...

  2. linux shell 未找到命令,未找到linux问题setenv命令(linux issue setenv command not found)

    未找到linux问题setenv命令(linux issue setenv command not found) 我在Linux中开发了一个Tcl / Tk脚本工具. 为了运行该工具,每次需要在she ...

  3. linux 脚本 退出命令,使用linux的exit命令退出shell

    使用linux的exit命令退出shell 发布时间:2020-07-11 11:29:48 来源:亿速云 阅读:103 作者:清晨 栏目:服务器 这篇文章将为大家详细讲解有关使用linux的exit ...

  4. linux的网络命令整理 更新中

    linux的网络命令整理 更新中 1.安装包: net-tools 主要命令: netstat , ifconfig , route , iptunnel iproute 主要命令: ss , ip ...

  5. Linux下sed命令替换配置文件中某个变量的值(改变包含字符的一行的值)之二——只改变第一出现的那一行

    一.背景 在之前的文章中有介绍过<Linux下sed命令替换配置文件中某个变量的值(改变包含字符的一行的值)> 但是这种方法存在一定的问题,就是假如某个变量在一个文件中出现两次,却只想更改 ...

  6. linux查看UID命令,Linux下查看UID

    方法一:使用 id 命令 使用id 命令可以很轻松的通过用户名查看UID.GID. 命令格式 id [选项]... [用户名] 命令选项 -a 忽略,兼容其它版本 -Z, –context 只输出当前 ...

  7. linux新建自定义命令,Linux 创建自定义命令

    Linux 创建自定义命令 Linux 可以创建自定义使用命令 这里我们采取使用"alias"命令.这里我们首先了解两个文件,通过这两个文件我们可以根据环境配置相应的自定义命令. ...

  8. linux基础:shell中的sh与bash区别与常用命令

    目录 一,什么是sh和bash? 二,shell的基本用法 2.1,变量 2.2,算术运算 2.3,使用 bash 计算器在shell脚本中进行浮点运算 2.4,shell中的条件判断命令test和[ ...

  9. sh命令 /Linux中执行shell脚本的4种方法总结

    bash shell 脚本的方法有多种,现在作个小结.假设我们编写好的shell脚本的文件名为hello.sh,文件位置在/data/shell目录中并已有执行权限. 方法一:切换到shell脚本所在 ...

  10. linux shell中./a.sh , sh a.sh , source a.sh, . ./a.sh的区别

    在linux shell中, 执行shell script的方式有多种, 有什么区别呢? 现在用一个简单例子再来说下. a.sh的内容是: #! /bin/bash echo hello world ...

最新文章

  1. 百亿估值的Databricks,到底是做什么的?
  2. Win64 驱动内核编程-26.强制结束进程
  3. linux下cmake命令行,深入理解CMake(1): CMake命令行参数
  4. 华为harmonyos公测,华为鸿蒙 Harmony OS 2.0 第二轮公测已开启,赶紧申请报名
  5. Linux ALSA声卡驱动之三:PCM设备的创建
  6. 云计算精华问答 | 边缘计算、雾计算、霾计算,它们究竟是什么?
  7. 设计模式 - Prototype模式(原型模式)
  8. 'tensorflow' has no attribute 'sub'
  9. 如何安装python_怎么在Windows操作系统下安装Python和Networkx
  10. Window10 下载配置 ChromeDriver
  11. sql/plus 常用操作
  12. 孔浩用的mysql工具_springmvc 孔浩 hibernate
  13. DOA估计谱峰搜索的一种策略
  14. bmvc哪个出版社出版_在出版饮食上
  15. 印染行业APS智能排程排产的应用意义
  16. win7计算机不显示摄像头图标不见了,win7系统摄像头图标不见怎么办?
  17. 【R语言 | 如何绘制带组内差异比较的柱形图】
  18. idea怎么进行c语言编程_idea编写c语言
  19. 永不服输的Java之路---重学Java (第二章)
  20. 55.网页设计规则#3_图片和插图

热门文章

  1. Android辅助功能之自动安装apk
  2. 【HZNUOJ】【C系列3.16】征战的Loy
  3. Cesium资料大全
  4. 记一次gitlab添加用户收不到邮件的解决办法
  5. python中的计数函数_NumPy的搜索和计数函数
  6. 【MATLAB】使用“蒙特卡罗(Monter Carlo)”算法计算不规则图形的面积
  7. 基于微服务的个人博客系统
  8. iOS11适配-Safe Area
  9. 程序之父: Pascal之父:尼克劳斯·沃思(一)
  10. 基于可变部件模型(DPM)的车辆行人检测