在我的工作中,我在远程集群上开发和运行了很多软件。大多数情况下,我只是通过 ssh 使用 bash/vim,并且只在本地运行终端模拟器和 Web 浏览器。我正在考虑买一个轻便的 chromebook 用于旅行等。但是,我从来没有真正使用过,也不知道谁拥有它。
鉴于以下要求,有谁知道 chromebook 是否是合适的选择?
至于最后一点,我更希望有一个本地终端允许我定义别名、运行 ssh 等;与拥有像 PuTTY 这样完全独立的 ssh 客户端相反。
chromebook 适合我的用例吗?还是我应该买一台便宜的普通笔记本电脑?
我使用一个脚本(我没有写访问权限)来创建一堆别名来设置环境。我想创建一个 bash 函数来设置我的环境,但似乎别名在函数体中不存在。
这是一个最小的例子:
# aliases.sh
alias fooAlias='echo "this will never work!"'
Run Code Online (Sandbox Code Playgroud)
.
# .bashrc
function setupLotsOfThings() {
source aliases.sh
fooAlias
}
Run Code Online (Sandbox Code Playgroud)
.
现在,如果我只是以aliases.sh交互方式获取源代码,那么事情会按预期进行:
[mycomputer]~/ $ source aliases.sh
[mycomputer]~/ $ fooAlias
this will never work!
Run Code Online (Sandbox Code Playgroud)
但是,如果我改为调用 .bashrc 中定义的函数,则在获取其定义后它无法识别别名:
[mycomputer]~/ $ setupLotsOfThings
-bash: fooAlias: command not found
Run Code Online (Sandbox Code Playgroud)
这里发生了什么?alias在函数中使用时,我对命令的范围有什么遗漏吗?
编辑:我将添加一些超出最小示例的细节,以阐明我正在尝试完成的工作。
对于我的工作,我在集群和/或网格上开发和运行了很多软件。我有几个项目需要完全不同的环境,例如不同的 gcc 版本、特定的软件版本、配置和数据路径以及各种环境变量。管理员提供脚本来设置各种东西,通常是通过定义 shell 函数或别名来调用其他函数或别名或运行各种脚本。对我来说,这是一个黑匣子。
我想用一个命令设置我自己的各种环境。目前,我做这样的事情:
[mycomputer]~/ $ source /some/environment/setup/script.sh
[mycomputer]~/ $ aliasToSetupSomeSoftwareVersion #this was defined in the above
[mycomputer]~/ $ anotherAliasForOtherSoftware
[mycomputer]~/ $ source /maybe/theres/another/script.sh
[mycomputer]~/ …Run Code Online (Sandbox Code Playgroud)