对不起,如果标题含糊不清,我对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打开后输入最后一个命令(假设它可能)?谢谢!
答案 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
启动它。