猿问
回到首页
个人中心
反馈问题
注册登录
下载APP
首页
课程
实战
体系课
手记
专栏
慕课教程
为什么需要在脚本文件的开头放置#!/ bin / bash?
我之前已经制作过Bash脚本,并且一开始它们都运行良好。放入它有什么意义?事情会有所不同吗?
另外,您如何发音#?我知道这!发音为“砰”。
怎么#!发音?
30秒到达战场
浏览 1286
回答 3
3回答
米脂
这是一个约定,因此* nix shell知道要运行哪种解释器。例如,ATT的较旧版本默认为sh(Bourne shell),而BSD的较旧版本默认为csh(C shell)。即使在今天(大多数系统都运行bash,即“ Bourne Again Shell”),脚本仍可以使用bash,python,perl,ruby,PHP等。例如,您可能会看到#!/bin/perl或#!/bin/perl5。PS:感叹号(!)亲切地称为“ bang”。shell注释符号(#)有时称为“ hash”。PPS:请记住-在* nix下,将后缀与文件类型相关联只是一种约定,而不是“规则”。一个可执行文件可以是一个二进制程序,一百万脚本类型和其他的东西,以及任何一个。因此需要#!/bin/bash。
0
0
0
鸿蒙传说
更准确地说,shebang #!是可执行文件(x 模式文件)的前两个字节,由execve(2)系统调用(执行程序)解释。但是POSIX规范execve没有提及shebang。它必须后跟解释器可执行文件的文件路径(BTW甚至可以是相对的,但大多数情况下是绝对的)。在用户中找到解释器(例如)的一个不错的技巧(也许不是那么好)是使用程序(始终在所有Linux上),例如python$PATHenv/usr/bin/env #!/usr/bin/env python任何ELF可执行文件都可以是解释器。您甚至可以使用,#!/bin/cat或者#!/bin/true如果您愿意!(但这通常是无用的)
0
0
0
青春有我
叫做舍邦。在unix-speak中,#称为Sharp(如音乐中的)或hash(如twitter上的标签),而!叫做爆炸。(您实际上可以使用!!来引用以前的shell命令,称为bang-bang)。因此,当放在一起时,您会得到haSH-BANG或shebang。#之后的部分!告诉Unix使用什么程序来运行它。如果未指定,它将尝试使用bash(或sh,zsh或任何$ SHELL变量),但如果存在,它将使用该程序。另外,#是大多数语言的注释,因此该行在后续执行中将被忽略。
0
0
0
打开App,查看更多内容
随时随地看视频
慕课网APP
相关问题
centos7里没有locate命令,请问在哪里有centos6.5的镜像文件?
2 回答
相关分类
Linux
linux
2 回答
centos7里没有locate命令,请问在哪里有centos6.5的镜像文件?
2 回答
安全
网络安全与编程?
1 回答
"UG8.0"编程怎么设安全高度?
1 回答
继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续