我可以运行使用2个不同命令行的脚本吗?

时间:2017-06-22 03:59:44

标签: linux bash shell sage

对不起,如果标题含糊不清,我对Linux很新,我真的不知道怎么回事。我正在创建一个脚本,当我运行它时,我让它运行Sage但是在它运行之后,下一个命令没有被执行。我认为这是因为第一对夫妇在标准终端(bash?)和./sage之后的所有内容都不是 - 这里是脚本:

#!/bin/bash

cd /home/alex/Desktop/sage-7.6
./sage
#I also tried wait ${!} here but it didn't work
notebook("/home/alex/Desktop/sage-7.6/projects/zero forcing.sagenb")

如何在Sage打开后输入最后一个命令(假设它可能)?谢谢!

编辑:这是我的问题图片。 Sage运行但我无法在它打开后执行notebook()命令。enter image description here

2 个答案:

答案 0 :(得分:2)

您需要使用[ here ]提到的notebook()选项作为sage代码运行-c。请尝试以下代码。

#!/bin/bash
/home/alex/Desktop/sage-7.6/sage # You can run the interactive shell directly
# At this point you have completely exited the sage interactive shell
# Presumably you want to run the below 'notebook()' after every interactive shell
# In that case do
/home/alex/Desktop/sage-7.6/sage -c 'notebook("/home/alex/Desktop/sage-7.6/projects/zero forcing.sagenb")'

答案 1 :(得分:1)

我认为你真正想要的只是让一个命令启动具有给定名称的笔记本。

事实证明,在许多Linux / Unix应用程序中,命令行都有自动帮助。尝试

/home/alex/.../sage -n -h

在笔记本上获得一些帮助。特别是,

sage -n -h --notebook=sagenb

给出了一个非常非常长的选项列表,第一个显示

sage --notebook=sagenb directory=tp

将在目录tp.sagenb中为您提供一个新的鼠尾草笔记本服务器。

所有这些都说,我还应该指出,sagenb(遗憾地)正逐渐成为支持Jupyter笔记本的传统项目。在Sage 8.0中,从sagenb到Jupyter的转换将成为默认值,即使现在你也可以做到

sage --notebook=jupyter  --notebook-dir=/home/foo/bar

启动它。