Python 在shell中运行脚本

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并等待。当我退出时,它会进入

我正在尝试编写一个脚本来一次性安装一些软件包。问题是,我使用的是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并等待。当我退出时,它会进入下一个安装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