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

Can I run a script that uses 2 different command lines?

抱歉,如果标题含糊不清,我是 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 中输入最后一条命令(假设可以)?谢谢!

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

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

#!/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")'

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

原来在很多Linux/Unix应用中,命令行都有自动帮助。尝试

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

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

sage -n -h --notebook=sagenb

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

sage --notebook=sagenb directory=tp

将在目录 tp.sagenb.

中为您提供一个新的 sage notebook 服务器

综上所述,我还应该指出,sagenb(遗憾地)正在慢慢成为一个有利于 Jupyter notebook 的遗留项目。在 Sage 8.0 中,从 sagenb 到 Jupyter 的转换将成为默认设置,即使现在您也可以这样做

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

用于启动。