本文主要是介绍通俗讲讲linux脚本文件以 #! 开头的原理,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
每一个脚本文件以#!开头,用来告诉shell需要指定哪一个解释器来进行执行(你发现什么错误没有?没错感叹号是!而不是!);
当某个解释器执行这个文件的时候,这一行就被当作注释行
所以你就明白了这一行对于shell来说就是识别并调用一个解释器来执行以下的命令语句,确定解释器之后,对于解释器来说这一行就是注释行
#!之后附带的路径,就是就用来解释脚本命令的二进制程序路径;
如果没有这一行,也就是说我们不写,我们在使用". /File" 执行的时候,默认使用bash解释器,当我们在脚本里面是bash可以解释的命令时候,文件执行正常;但是当我们在脚本里面是python expect或者其他语言的时候,文件无法执行会报错,得到 Command not found 警告
综上所述:
使用 . 命令或者 source命令 我们必须加上 #!(path)
如果是bash解释器,我们就加上:#!/bin/bash
bash有诸如:ip ad sh ,ping,echo,grep,while,until,for等命令语句
如果是python解释器 ,我们就加上:#!/usr/bin/python
如果是expect解释器,我我们就加上:#!/usr/bin/expect
expect有诸如:spawn ,expect ,send ,exp_continue等命令语句
如果是perl解释器,我们就加上:#!/usr/bin/perl
…
注意:!不能是中文的!
注意:路径名必须正确,否则会得到 Command not found 警告
如果是 "解释器 file"命令那么就可以不加第一行,比如:
bash file.sh
expect file.exp
pathon file,py
但我建议你还是加上去
好的,下课!有问题留言
————————————————
版权声明:本文为CSDN博主「宇文忠」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_31789689/article/details/107906335
这篇关于通俗讲讲linux脚本文件以 #! 开头的原理的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!