bash - 我如何将这个 bash 函数翻译成 fish shell?

标签 bash function shell fish

function run () {
    nohup python $1 > nohup.out &
}

在命令行上,我称之为“run scriptname.py”,bash 执行以下命令:

python scriptname.py > nohup.out & 

你能帮我把这个翻译成 fish 吗?

到目前为止我有这个..

function run 
    bash -c "nohup python $1 > nohup.out &"
end

当我在 ~/.config/fish/config.fish 上调用 source 时

这只是说说

Error when reading file: ~/.config/fish/config.fish 

没有提供任何关于错误是什么的有用提示。

最佳答案

这里真的不需要执行bash,fish也可以执行nohup,重定向也可以等等。

有一个细微差别,fish 函数的参数存储在 $argv 数组中,而不是 $1 和 $2 等。

function run
     nohup python $argv > nohup.out &
end

这会将 $argv 扩展到每个元素的所有元素,因此 run script.py banana 将运行 nohup python script.py banana > nohup.out &。如果您真的只想传递一个参数,则需要 $argv[1]

我实际上不知道为什么您的定义在采购 config.fish 时会导致错误 - 您使用的是哪个 fish 版本?

关于bash - 我如何将这个 bash 函数翻译成 fish shell?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39004437/

相关文章:

function - Lua 全局覆盖

Bash:仅获取第二行和最后一行输出(ls -lrS)

Ubuntu 中的 PHP exec()——您可以传入的参数大小是否有限制?

linux - echo 没有正确回显值 - 没有双引号的 BASH Linux

循环/结构中的 C++ 函数

linux - 将带有单引号的 awk 程序嵌入到 shell 脚本中

c - C 中的 Sigaction 处理程序

bash - 'mv' 命令抛出错误但在 docker 中执行正常

ruby-on-rails - Docker: chmod: 无法访问 'chmod' : 没有这样的文件或目录

c - 函数从 C 中的字符串创建数组,无需 strtok