① 如何执行shell命令行,这样如何执行python脚本

os.system("Thecommandyouwant").这个调用相当直接,且是同步进行的,程序需要阻塞并等待返回。返回值回是依赖于系统答的,直接返回系统的调用返回值,所以windows和linux是不一样的os.popen(command[,mode[,bufsize]]),图中是一个例子.可以看出,popen方法通过p.read()获取终端输出,而且popen需要关闭close().当执行成功时,close()不返回任何值,失败时,close()返回系统返回值.可见它获取返回值的方式和os.system不同。3使用commands模块,图中是一组例子。根据你需要的不同,commands模块有三个方法可供选择。getstatusoutput,getoutput,getstatus。

② shell和python脚本学哪个

各有优势,个人偏向python

跨平台
面向对象,模块丰富,在解决一些复杂问题时方便点,除了当脚本用也能写一些比较大的应用程序;
代码可读性好,易写易维护

不过最终还是看工作需要吧

③ 如何用Python交互执行shell脚本

“交互执行shell脚本”是不是说代替人的手动输入,比如sudo时输入密码的操作?
这种情况可以用Pexpect模块。不是默认的,需要自己装。

④ 怎么样在shell脚本中调用python脚本

直接使用python
后面跟python脚本的文件名就可以
例如:python
tr.py就是在shell中执行pr.py这个python脚本,见下图:

⑤ shell脚本和python脚本哪个强大

这两个没有可比性。
shell脚本只能和python的自动化相关做个比较,它的针对性强一些。

⑥ perl 、shell、python三种脚本语言那种好学、易用

perl、shell、python三种脚本语言的区别:

1、适用不同:shell是操作linux的基本,是必须学的。学shell就是学linux命令。perl有强大的正则表达式支持,对于文本处理非常强悍,玩linux不得不学。python作用一种面向对象的,能作为linux脚本的语言,学好之后能帮你很好地完成工作。

2、特点不同:Perl是一种能完成任务的语言。从一开始,Perl就设计成可以把简单工作简单化,同时又不失去处理困难问题能力的语言。它可以很容易操作数字,文本,文件和目录,计算机和网络,特别是程序的语言。

这种语言应该很容易运行外部的程序并且扫描这些程序的输出获取感兴趣的东西。而且它还应该很容易能把这些你感兴趣的东西交给其它程序做特殊的处理。当然,这种语言还应该很容易在任何现代的操作系统上可以移植地编译和运行。

shell提供了你与操作系统之间通讯的方式。这种通讯可以以交互方式(从键盘输入,并且可以立即得到响应),或者以shellscript(非交互)方式执行。

shellscript是放在文件中的一串shell和操作系统命令,它们可以被重复使用。本质上,shellscript是命令行命令简单的组合到一个文件里面。Shell基本上是一个命令解释器,类似于DOS下的command.com。

它接收用户命令(如ls等),然后调用相应的应用程序。较为通用的shell有标准的Bourneshell(sh)和Cshell(csh)。

Python是一种代表简单主义思想的语言。阅读一个良好的Python程序就感觉像是在读英语一样,尽管这个英语的要求非常严格,Python的这种伪代码本质是它最大的优点之一。它使你能够专注于解决问题而不是去搞明白语言本身。

3、优点不同:perl,用作文本处理比较好,可以作为系统的辅助工具。shell,用作系统维护、操作等方面。python,功能强大,模块多、跨平台能力好,完全面向对象,尤其适用做大型脚本程序的开发和快速开发。

(6)shellpython脚本扩展阅读:

erl比shell+sed+awk更强大,但学习两者并不冲突,通常是学习shell做为脚本编程的入门基础。而Python在应用领域则与前两者有很大的差别,无太大的可比性。面向不同的任务,可以只需用到其中的一种,也可能三种都要用到,所以究竟该学谁不学谁,需要由面对的任务来决定。

总之,shell是基础,其他是进阶辅助。

Shell脚本通常都是以.sh为后缀名的,这个并不是说不带.sh这个脚本就不能执行,只是大家的一个习惯而已。所以,以后你发现了.sh为后缀的文件那么它一定会是一个shell脚本了。

test.sh中第一行一定是“#!/bin/bash”它代表的意思是,该文件使用的是bash语法。如果不设置该行,那么你的shell脚本就不能被执行。’#’表示注释。后面跟一些该脚本的相关注释内容以及作者和创建日期或者版本等等。

⑦ Linux下编写脚本Shell和Python的区别

题主问的是调用命令,那当然是 POSIX 系 Shell 不罗嗦。如果你要个调用命令还算可以并且写起来舒服点的语言,建议找 Ruby 去。


外偏题去说 Shell 不是系统级编程语言的我也是醉了,我还真没看到过没有 Shell 能干活的 Unix/Linux 家伙的,就连你个
sysVinit 也得靠 shell 啊。并且你还触碰到了 Unix 狂魔的 G 点——Shell 用户万能的胶水能力被丢到哪里去了?随便起一个
Python Shell 抓住 stdin 灌或者 /tmp 丢个文件喂,你能干的我全都能干(这是认真的,参见 makeself 等自解压
shell 脚本形式)。

讲 Google Style Guide 的算是靠了点谱(虽然还是丢下了调用命令这回事),问题是 Google 还不许用 C++ STL 呢你怎么不说?Bash 这玩意,认真写的人文件头都 source 一组小库的。

嗯上面三段讲的是调用命令这个需求、最小依赖这个优点和语言本身不常被严肃使用(放着功能禁止用)这回事。

接下来的内容严重不友善,涉及大量打岔,请题主手动忽略。大概大家都看得出我和生意人在微博上有些观点上的矛盾,我也承认匿名这样黑不大好。但是这和用 Shell 开命令搞管道胶水一样爽啊,我怎么会放弃?

稍有常识的人都能看出,LibreWindows 冒泡排序的 shell 脚本完全不是用和 py 同一种风格写出来的。我在这里做了较为忠实的翻译:
#!/bin/bash
orig=(12 5 13 8 9 65)

# paramaters[] -> list[]
bubble(){
list=("$@")
local size=$((${#list[@]}-1)) i sorted=0 t
until ((sorted)); do
sorted=1
for ((i=0;i<size;i++)); do
if ((list[i] > list[i+1])); then
sorted=0;
t="${list[i]}" list[i]="${list[i+1]}" list[i+1]="$t"
fi
done
done
}

bubble "${orig[@]}"
echo ${list[@]}
: << _NOTES
Real unix-shelly way:
sorted=$(for i in ${orig[@]}; do echo $i; done | sort -g)
sorted=$($sorted)
echo ${sorted[@]}
_NOTES

Bash 的完整版本可以使用 declare -n 创建引用类型的变量,但是 Cygwin 上的 bash 没编译进去我也就先不用吧。


请阁下注意一点,数组本非古老的 Shell 所支持的,She-bang 不应调用 /bin/sh 而应使用 /bin/bash 执行。Bash
带着镣铐做这种拓展还要拿来说就算了,还强行丑化代码不开高亮接着便是叫人“感受一下”,大概也是先生您在微博上常用的套路了。另外我承认论现代编程
Shell 不如 Python,也承认 WoSign/CNNIC 验证就是比资本主义快。

啊我忘了一点,这个问题本来就是讨论调用命令的,你跟我扯一般计算干啥?
不要问我是谁,我只是个买辣条的。

⑧ shell脚本与python如何结合起来呢

os.system(command)这个函数可以调用shell运行命令行command并且返回它的返回值。试一下在python的解释器里输入os.system(”ls
-l”),就可以看到”ls”列出了当前目录下的文件。可以说,通过这个函数,python就拥有了shell的所有能力。

⑨ shell 脚本转 python 脚本问题

1 确保test.sh具有可执行权限:$sudo chmod a+x test.sh

2python代码:
import shlex
import subprocess

def popen(args):
if type(args) != type([]):
args = shlex.split(args)
proc = subprocess.Popen(args, stdout = subprocess.PIPE, stderr = subprocess.PIPE)
(output, errput) = proc.communicate()
proc.wait()
return output + errput
if __name__ == '__main__':
args = ['test.sh']
log = popen(args)