linux #!/bin/sh 是什么意思

如题所述

对#!/bin/sh的认识

第一次学shell编程,看的文章中说shell程序必须以"#!/bin/sh"开始,也就认为是这样了,虽然知道在shell中以"#"开始的语句都是注释,但也从没认为"#!/bin/sh"也是注释,就像对C语言程序必须有main函数一样毫无怀疑。但前些时候又听说"#!/bin/sh"也是注释,可有可无,当时觉得真是一个失败,连基本的语法都分不清。前几天借了一本书,才真正认识了"#!/bin/sh"。shell编程是以"#"为注释,但对"#!/bin/sh"却不是。"#!/bin/sh"是对shell的声明,说明你所用的是那种类型的shell及其路径所在。(#! /bin/sh 是指此脚本使用/bin/sh来解释执行,#!是特殊的表示符,其后面跟的是解释此脚本的shell的路径)如果没有声明,则脚本将在默认的shell中执行,默认shell是由用户所在的系统定义为执行shell脚本的shell.如果脚本被编写为在Kornshell ksh中运行,而默认运行shell脚本的为C shell csh,则脚本在执行过程中很可能失败。所以建议大家就把"#!/bin/sh"当成C 语言的main函数一样,写shell必须有,以使shell程序更严密。

一个命令行结束用&

运行时首先要将文件的权限修改为可执行:chmod +x comdfile

然后要指定执行文件的路径,否则系统会认为执行文件在系统默认目录下。

假如可执行文件在当前的目录下,则:./comdfile ?

$bash是什么意思?

$表示系统提示符,$ 表示此用户为普通用户,超级用户的提示符是#,bash是shell的一种,是linux下最常用的一种shell,$bash的意思是执行一个子shell,此子shell为bash。
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-01-07
#! /bin/sh 是指此脚本使用/bin/sh来解释执行,#!是特殊的表示符,其后面根的是此解释此脚本的shell的路径。
第2个回答  推荐于2020-01-19
以下的代码由/bin/sh 来解释。
例子
#!/bin/bash 以bash shell来解释
#!/bin/csh 以csh shell来解释
#!/usr/bin/env python 以下代码由python来解释本回答被网友采纳
第3个回答  2013-01-07
系统采用的解释器,这样linux会采用sh的语法来解释脚本。来自:求助得到的回答
第3个回答  2013-01-07
表示该脚本文件运行的时候 ,调用/bin/sh来解释

linux的shell编程中#!\/bin\/sh和bash是什么意思?
\/bin\/sh 是指此脚本使用\/bin\/sh来解释执行,#!是特殊的表示符,其后面根的是此解释此脚本的shell的路径。$bash $表示系统提示符,$表示此用户为普通用户,超级用户的提示符是#,bash是shell的一种,是linux下最常用的一种shell,$bash的意思是执行一个子shell,此子shell为b...

linux #!\/bin\/sh 是什么意思
\/bin\/sh"是对shell的声明,说明你所用的是那种类型的shell及其路径所在。(#! \/bin\/sh 是指此脚本使用\/bin\/sh来解释执行,#!是特殊的表示符,其后面跟的是解释此脚本的shell的路径)如果没有声明,则脚本将在默认的shell中执行,默认shell是由用户所在的系统定义为执行shell脚本的shell.如果脚本被编...

linux shell编程脚本第一行为什么一定要用"#!\/bin\/sh",不写行不行?这...
!\/bin\/sh为指定你运行脚本的shell类型,是bash,ksh还是其它,一般系统有固定的shell,不定这行也能执行,只是为了规范写上的。还有比如你执行的是perl程序,就可以写#!\/bin\/perl.

linux \/b么意思
Linux中的"\/bin\/sh"是一个特殊的符号,位于脚本文件的开头,表示此脚本使用\/bin\/sh路径下的shell解释器来执行。#!\/bin\/sh是一个"shebang"或称为"感叹号"行,它告诉系统这是一个可执行的脚本,需要特定的解释器来运行。$bash$在脚本中代表用户提示符,普通用户的提示符以$开始,而超级用户则以#开...

shell中没有添加#!\/bin\/sh的话,系统会按哪种sh执行,是否为默认sh,并且...
"#!\/bin\/sh"是对shell的声明,说明你所用的是那种类型的shell及其路径所在。如果没有声明,则脚本将在默认的shell中执行,默认shell是由用户所在的系统定义为执行shell脚本的shell。=== echo $SHELL \/\/查看当前默认shell

shell脚本第一行为“#!\/bin\/sh”,是什么意思?
\/bin\/ksh。如果你使用自定义的脚本语言,比如xshell,需要将其解释器文件放在\/usr\/local\/bin目录下,那么脚本的第一行应写为#!\/usr\/local\/bin\/xshell。如果没有这种第一行的明确指定,不同的Unix类操作系统会根据其默认设置来选择shell解释器。例如,Unix系统通常默认使用sh,而Linux系统常常倾向于使用...

#!\/bin\/bash
!\/bin\/sh 表示本脚本由\/bin\/路径的sh程序来解释...跟命令行下~\/bin\/sh Scriptname效果相同...但是#不是用来表示注释的吗?难道这里的#不是这个意思?不同的地方,#有不同的意思 就好比c++里面用“\/\/”来注解 vb里面用“'”注解一样 dns里面用“;”来注解 shell的开头那个#不是用来注解的 ...

linux系统\/bin\/bash和\/bin\/sh的区别
在Linux系统中,\/bin\/bash和\/bin\/sh是两个不同的shell解释器。\/bin\/sh是基础版本,它遵循POSIX标准,当脚本中出现错误时,会立即停止脚本执行。而\/bin\/bash则是\/bin\/sh的增强版,它默认不开启POSIX模式,即使脚本出错,仍会继续执行后续代码。使用#!\/bin\/bash --posix与#!\/bin\/sh效果相同,意味着...

shell脚本第一行为“#!\/bin\/sh”,是什么意思?
你自己定义一种脚本语言,再自己写个解释器去执行它,比如说叫xshell,放在\/usr\/local\/bin下,你的脚本第一行就应该是\\x0d\\x0a#!\/usr\/local\/bin\/xshell\\x0d\\x0a\\x0d\\x0a如果没有这样定义的第一行,不同unix类操作系统会用默认shell来解释脚本,如unix往往是sh,linux往往是用bash,......

在Linux系统中的脚本文件一般以什么开头
linux系统中的脚本文件一般以 !\/bin\/sh 指明要执行shell文件的shell名称。

相似回答