Python 在shell中运行脚本
我正在尝试编写一个脚本来一次性安装一些软件包。问题是,我使用的是sage(),它类似于python的扩展。当我在终端时,我所做的就是键入:Python 在shell中运行脚本,python,shell,sage,Python,Shell,Sage,我正在尝试编写一个脚本来一次性安装一些软件包。问题是,我使用的是sage(),它类似于python的扩展。当我在终端时,我所做的就是键入: /Applications/sage/sage -sh #to get into sage shell easy_install -U distribute #to install package exit #to get out of sage shell 但是,当我将这些命令写入shell脚本时,它会打开sage shell并等待。当我退出时,它会进入
/Applications/sage/sage -sh #to get into sage shell
easy_install -U distribute #to install package
exit #to get out of sage shell
但是,当我将这些命令写入shell脚本时,它会打开sage shell并等待。当我退出时,它会进入下一个安装distribute的命令。如何在sage shell中运行
easy\u install
命令?sage shell是一个在前台运行的进程,由于脚本的顺序性,sage shell必须在执行脚本的下一行之前完成运行。sage外壳退出后,easy_安装生产线运行。脚本正在按编写的方式执行。假设sage的手册页或其他文档没有专门解决此问题,并且您正在使用unix/linux/cygwin(ish)shell,您可能会发现此处的文档将CMD从脚本提供给sage。试一试
#!/bin/bash
#to get into sage shell
/Applications/sage/sage -sh <<EOS
easy_install -U distribute #to install package
exit #to get out of sage shell
EOS
或者在path变量中包含脚本的路径,或者提供相对路径(如chmod cmd中所示),或者提供完整路径,即
/path/to/script/mySageTalkerScript.sh
当您指出还有更多的代码需要编写时,如果您通过缩进代码遵循良好的实践,并且使用制表符进行缩进,那么您可以使用制表符缩进整个块
#to get into sage shell
/Applications/sage/sage -sh <<-EOS
easy_install -U distribute #to install package
exit #to get out of sage shell
EOS
#进入sage shell
/Applications/sage/sage-sh我同意,但我要问的问题是如何让它以我想要的方式运行。我可以确认,通过sage shell的脚本(毕竟它只是一个普通shell,所以没有理由不工作),这可以让easy\u install
工作。
#to get into sage shell
/Applications/sage/sage -sh <<-EOS
easy_install -U distribute #to install package
exit #to get out of sage shell
EOS