Octave 有一个 --eval 选项,它接受像“sqrt(4)”这样的字符串并输出“ans = 2”。我想创建一个将 a 参数作为字符串传递的函数,所以我可以这样调用它:
calc sqrt(4)
相当于:
octave --eval "sqrt(4)"
我写了一个这样的简单函数:
function calc --wraps octave
octave --eval "$argv"
end
这没用。
输出:
$calc sqrt(4)
fish: Unknown command: 4
in command substitution
fish: Unknown error while evaluating command substitution
calc sqrt(4)
括号是命令替换的鱼语法。您别无选择,只能转义括号或引用参数:
在这样的简单情况下,您可能更喜欢缩写:
然后,当您键入 时calcspace,fish 会将该文本替换为“octave --eval”。(仍然需要保护参数中的括号)
不,但是您可以使用键绑定和
commandline
函数来执行此操作。当您按下 Alt-C 时,当前命令行将被替换,
octave --eval ""
并且光标会向后移动一个字符,在结束双引号之前。查看
bind --help
并bind -a
查看当前的键绑定:想一个让您难忘的键序列,并bind -a
显示它是否可用。