python调用shell命令但执行无效,python脚本无法运行
脚本语言是linux系统内置的一种非常强大的语言,在操作系统级别的应用处理方面非常出色。我们从网上下载的很多APP应用的安装和启动,往往都是用shell脚本语言编写的。但是刚开始使用linux的伙伴,在下载的APP中,不知道如何安装和启动,经常会因为运营商的安装说明而出错,对吧?并指责linux系统操作复杂,不人道。另外,我在学习linux的时候,看到网上好的代码,想复制,但是用不上。原因是代码不完整,作者撒谎。实际上,编写和运行shell脚本需要考虑很多因素。我们很少用,所以没有注意到。今天的编辑就带你深入了解一下。
1、"#!如何使用很有讲究。
#!如果一系列符号出现在脚本的第一行,这意味着指定哪种类型的shell将解释和执行shell脚本。也就是说,指定了解释器。如果#!这个符号不显示在第一行,所以这一行是注释行,没有脚本运行。如下图所示,#!名为/ddzfj/bash的行表明这个脚本是使用名为bash的shell运行的。第三行的#号!指示该行是注释。
图1
我们从网上下载的shell脚本可能是因为shell脚本语言解释器的第一行和我们默认的shell版本不匹配。一般来说,必须根据第一行的内容指定解释器。
如果#!/ddzfj/bash,我们运行test.sh在bash test.sh上;
如果#!/ddzfj/dash,我们在dashtest.sh上运行dash.sh。
其他脚本程序也是这样执行的。如果您的合作伙伴不知道如何获得shell脚本并执行它,现在您知道了。
2.剧本评论很重要。
以上,我知道#后的内容表示评论。注意:如果不是第一行,有一个#表示#后面有注释。第一行用于指定解释器。
#后面的评论是给开发者和用户的。系统看不到它们,也无法执行它们。开发者可以通过注释了解其他程序员写的脚本的含义。即使是自研剧本,也需要靠评论,日积月累才能回忆起来。用户可以知道使用评论时需要注意什么。不是所有的外壳都能用,需要根据自身环境进行微调。当然中文评论很少,英语不好的伙伴记得用翻译工具。
3.结果因脚本执行模式而异。
第一,如上所述,不需要改变bash test.sh、dash test.sh这样格式的脚本文件的可执行权限,即不需要使用chmod命令来改变文件的权限。
第二种方法是以。/test.sh或path/test.sh,这要求脚本文件具有可执行权限。如果文件没有可执行权限,它将被强制执行。per mossion
图2
第三种方法是在点后面加一个空格,然后按照脚本名的形式。这种形式的函数只在shell上运行脚本,而不生成和执行子shell。主要用于在shell中嵌套子shell的情况。如果有壳嵌套,不按照第三种方法做,可能得不到你想要的结果!如下图所示。
图3
echo $user第一次运行和第二次运行的反馈结果是不同的。
所以,今天的分享到此结束!有什么不明白的,请留言!如果喜欢文字,请赞,收藏,分享编辑。
通知/反馈
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。