摘要 腾兴网为您分享:linux shell中#bin/sh的理解,支付旭尊,小熊到家,天天美剧,淘金宝等软件知识,以及维棠flv视频软件,usb抓包工具,红警2无敌,ucbug造梦西游4,壁纸工作室,亿方云,倍速英语点读,粤视,小米路由器2,flv剪辑,部编版七年级语文上册电子课本,家校共育平台,门萨智商测试,傲视千雄,玫瑰镇等软件it资讯,欢迎关注腾兴网。在shell编程的基础知识中,介绍说shell程序必须以#!/bin/sh开始,也就认为是这样了。 虽然知道在shell中以#开始的语句都是注释,但也从没认为#!/bin/sh也是注释,就像对C语言程序必须有...

在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 shell bin sh,linux shell中#bin/sh的理解相关推荐

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

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

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

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

  3. sh linux 一组命令,linux中的组命令和子shell

    组命令和子shell 在bash中,有两种方式可以将命令组合到一起,一种是组命令,另一种是子shell.格式如下:# 组命令 { commnad1; command2; [ command3.. ] ...

  4. Linux系统中运行.sh(Shell脚本)文件

    本文转载自:百度经验:Linux下如何运行.sh文件 其中,以绝对路径运行方法: (1)./home/test/shell/hello.sh,可以这样运行是因为当前登录用户是root,当前路径是在/下 ...

  5. c语言代码中调用系统命令行.sh shell脚本,linux shell system传参

    C语言代码中调用命令行: 1. 使用system(" 命令行 ");    --  执行完命令行后,会返回原先C代码的位置,继续执行. 2. 如果命令行中需要传参,使用 sprin ...

  6. linux几种常见的Shell:sh、bash、csh、tcsh、ash

    Linux 是一个开源的操作系统,由分布在世界各地的多个组织机构或个人共同开发完成,每个组织结构或个人负责一部分功能,最后组合在一起,就构成了今天的 Linux.例如: Linux 内核最初由芬兰黑客 ...

  7. linux中的改变bin级别,Linux常用命令

    关机命令:shutdown -h now / shutdown -r now / reboot 切换图形化界面:startx      切换到命令行:注销即可 添加用户:useradd xiaomin ...

  8. linux 64位 可移植性,linux – #!/ bin / sh vs#!/ bin / bash,实现最大的可移植性

    shell脚本大致有四个级别的可移植性(就shebang行而言): >大多数可移植:使用#!/ bin / sh shebang并仅使用POSIX standard中指定的基本shell语法.这 ...

  9. linux一键分区脚本,【Shell】Linux中分区脚本

    后天要中期答辩了,今天只刷了一个题,还没写出来,但是想更新博客,所以只有把之前写的东西贴出来了. 一个用于分区的shell脚本 1 #!/bin/bash #指定脚本解释器路径 2 echo &quo ...

最新文章

  1. asp连接mysql odbc,在ASP中连接MySQL数据库的方法,最好的通过ODBC方法
  2. Android中AES256加密的实现
  3. C语言入门题-计算指数 (15分)
  4. 234. Palindrome Linked List 回文链表
  5. Visual C# 2008+SQL Server 2005 数据库与网络开发--13.1.3 简单记事本程序菜单设计
  6. Java配置信息工具jinfo
  7. Fedora 14安装飞信
  8. 数据库:SQL 窗口函数知识介绍
  9. C++ 类模板遇到继承的问题以及解决
  10. 原来这么看导师对论文或文稿的批注才不会辜负!
  11. 几款ReactJS最优秀的UI框架
  12. cher怎么翻译中文_中文翻译法语收费标准是怎么定的
  13. 双闭环可逆直流脉宽pwm调速系统设计及matlab仿真验证_,双闭环可逆直流脉宽PWM调速系统的设计最终版(手机版)...
  14. 鸿蒙 usb调试,usb调试助手
  15. twitter如何以图搜图_如何从 shutterstock 下载无水印小样图
  16. Linux 安装PostgreSql
  17. PHP - 收藏集 - 掘金
  18. 如何给拍好的短视频配音?最简单的方法推荐!
  19. Echarts实现以秒为单位的动态三条折线图显示
  20. 网站建设制作需要多少钱呢?费用是多少?

热门文章

  1. 朱育华老师--最有实践经验的物料管理专家--沪师经纪刘建
  2. C# Cad二次开发新手入门系列教程(二)Line对象
  3. 如何理解产品的海关编码(HS Code),编码归类的主要依据是什么?
  4. Google Earth Engine(GEE)—— VCT 算法案例
  5. Visual Studio 2015专业版安装激活图文教程
  6. conda 安装mxnet 遇到问题总结
  7. golang 打印error的堆栈信息
  8. MySQL索引长度限制(转)-时间长就忘记了
  9. origin作图最后保留图片的详细步骤
  10. deepdive中文关系提取