R1-003 Linux上的Shebang符号——#!

简介: Shebang这个符号通常在Unix系统的脚本中第一行开头中写到,它指明了执行这个脚本文件的解释程序。 1. 如果脚本文件中没有#!这一行,那么它执行时会默认用当前Shell去解释这个脚本(即:$SHELL环境变量)。
Shebang这个符号通常在Unix系统的脚本中第一行开头中写到,它指明了执行这个脚本文件的解释程序。
1. 如果脚本文件中没有#!这一行,那么它执行时会默认用当前Shell去解释这个脚本(即:$SHELL环境变量)。
2. 如果#!之后的解释程序是一个可执行文件,那么执行这个脚本时,它就会把文件名及其参数一起作为参数传给那个解释程序去执行。
3. 如果#!指定的解释程序没有可执行权限,则会报错“bad interpreter: Permission denied”。 如果#!指定的解释程序不是一个可执行文件,那么指定的解释程序会被忽略,转而交给当前的SHELL去执行这个脚本。
4. 如果#!指定的解释程序不存在,那么会报错“bad interpreter: No such file or directory”。 注意:#!之后的解释程序,需要写其绝对路径(如:#!/bin/bash),它是不会自动到$PATH中寻找解释器的。
5. 当然,如果你使用”bash test.sh”这样的命令来执行脚本,那么#!这一行将会被忽略掉,解释器当然是用命令行中显式指定的bash。

原文链接:http://smilejay.com/2012/03/linux_shebang/
相关文章
|
1月前
|
Shell Linux API
【Shell 命令集合 磁盘维护 】Linux 查找指定目录下的所有符号链接文件 symlinks 命令使用教程
【Shell 命令集合 磁盘维护 】Linux 查找指定目录下的所有符号链接文件 symlinks 命令使用教程
33 1
|
5月前
|
Linux Shell 开发工具
Linux系统特殊符号的作用
Linux系统特殊符号的作用
|
9月前
|
Unix Linux Shell
linux 未预期的符号 `$‘{\r‘‘ 附近有语法错误
linux 未预期的符号 `$‘{\r‘‘ 附近有语法错误
414 0
|
2月前
|
Linux C++
认识Linux指令之 “ 重定向” 符号
认识Linux指令之 “ 重定向” 符号
认识Linux指令之 “ 重定向” 符号
|
8月前
|
Linux 知识图谱 Windows
7.2.2 【Linux】实体链接与符号链接:ln
7.2.2 【Linux】实体链接与符号链接:ln
73 0
|
10月前
|
Unix Linux
Linux 重定向符号以及2>&1
Linux 重定向符号以及2>&1
|
10月前
|
Ubuntu Linux Shell
【Linux问题合集003】解决无法创建新用户丨在home目录下看不见用户文件夹丨创建的用户设置密码时报错,当前用户不在 sudoers 列表中丨Ubunt不显示用户名,只显示“$“符号问题
【Linux问题合集003】解决无法创建新用户丨在home目录下看不见用户文件夹丨创建的用户设置密码时报错,当前用户不在 sudoers 列表中丨Ubunt不显示用户名,只显示“$“符号问题
3234 0
|
Ubuntu Linux Shell
收藏 | 15 个你非了解不可的 Linux 特殊字符,妈妈再也不用担心我看不懂这些符号了!
不知道大家接触 Linux 系统有多久了,可曾了解过 Linux 中有哪些特殊的字符呢?其实啊,那些特殊字符都大有用处呢,今天的文章就给大家简单地科普一下 Linux 中你需要了解的 15 个特殊字符,想学或刚学 Linux 的小伙伴赶紧上车了为!
220 0
收藏 | 15 个你非了解不可的 Linux 特殊字符,妈妈再也不用担心我看不懂这些符号了!
|
Linux
linux|管道符号
|管道符是什么:把前一个命令的输出结果输出给下一个命令使用。 为什么有管道符:对结果进行过滤。 使用方法: image.png 总结: image.png
949 0