shell java python执行对比
每一个命令都有一个返回值
可用echo $?查看上一个命令的返回值,0为执行成功,不成功返回非0值
命令1 && 命令2 (当命令1执行成功后才会执行命令2)
命令1 || 命令2 (当命令1执行失败后才会执行命令2)
命令1 ; 命令2(从1到2按顺序执行命令)
查看命令路径
which bash
which python
如果在代码开头指定了解释器路径(只能在第一行),则可以直接运行如:
test.sh文件:(当然bash可以不用写,默认就是)
#!/usr/bin/bash
代码
则可以直接./test.sh运行
同样Python代码开头有
test.py
#!/usr/bin/python
也同样可./test.py直接执行 而不用 python ./test.py这样执行
但是要给执行权限chmod +x test.py
程序语言执行
C ——编译——二进制机器码(cpu能直接执行,但是要根据cpu指令集去写)
java——编译——字节码(只有java虚拟机jdk看的懂,cpu看不懂,字节码通过java虚拟机后最终还是要翻译成cpu看得懂的机器码执行)
shell——解释
perl——解释
expect——解释
python——编译(字节码)或解释都可以(python也有虚拟机)
综上 执行速度为 C>java>=python>shell(编译的大于解释的)
c偏底层开发 java python应用开发多一些
bash中调用python expect
把文件a.py的内容合到文件b.sh中
cat a.py>>b.sh
bash中有python代码如何执行:
同样也可以在python中套用shell,反过来即可
#!/usr/bin/bash
ping www.baidu.com &> x.dat
python(或/usr/bin/python) <<-EOF(此处-可以让结尾处的EOF有缩进,否则必须顶格写,且EOF这个名字也是可以任意自己定义的,如下面一个例子)
print "hello"
EOF
python(或/usr/bin/python)<<-ppl
print "hello"
ppl
echo "heloo bash"
ps:
bash a.sh
./a.sh
这两种方式是在子shell里面运行的
而
. a.sh
source a.sh
是在当前的shell(可以理解为最大的)下执行的,一般可以用来更新一下环境变量,别名(alias)之类的