Linux shell 在Linux 就是一个命令粘合器,很容易把那些工具组合起来,行程一个更强大的工具,或者让手头的工作自动化起来。
Window上也有batch ,理论上也有这样的功能。 但是其语法和功能与Linux 上的shell 比起来,不可同日而语。
如果有的命令只有window版本,如果用linuxshell 调用window的命令,并且参数传递?
问题: 想用Linux 上面的shell及其工具如何与window上面的命令结合起来?
答案是:cywin.
cywin,在window 上模拟linux的运行环境,同时又可以调用原生态的window 命令。
比如:
for i in $(ls -R)
do
out=$(./test.exe $i) #invoke the window program with the parameter from shell.
echo $out
done
另外一个问题:用wine替代cywin 在Linux 上面运行 window 命令?
for i in $(ls -R)
do
# In Linux environment, it will invoke the window command through wine
# redirect the output of wine to NULL
out=$(wine test.exe $i 2>/dev/null)echo $out
done
不错也可以运行。这也是一个解决方案。
但是,往往很多程序在wine上面运行不起来,这时候还是推荐cywin。此外,另外还有一个强大工具: ipython。
这是一个基本python的,跨平台的,支持与linux/window 的shell交互的。其支持“!” 运算符,可以调用系统的命令。值得一试。