Shell 调用 window 命令之间交互

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
可以不用window那难写的batch 语法,直接调用linux 命令,运行window命令。

另外一个问题:用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交互的。其支持“!” 运算符,可以调用系统的命令。值得一试。

原文地址:https://www.cnblogs.com/zhyg6516/p/1990084.html