Fish shell: 带有最后一个参数的变量
Fish shell: variable with last argument
什么鱼 shell 相当于 mkdir -p foo/bar/baz/quux && cd $_
?
我知道 $history[1]
,但这里我只需要上一个命令的最后一个参数。
Fish 对此没有捷径,您将不得不重复该论点。
或者,如果它用于交互使用,请按 alt-up 循环浏览旧参数。
不幸的是,fish 不支持最后一个参数变量。
一种高效的交互方式是创建目录:
> mkdir -p foo/bar/baz/quux
然后键入 cd 和路径的第一个字符。
> cd f
此时鱼可能会自动建议整个路径。如果没有,您可以按 alt-up 进行历史令牌搜索,它一定会找到它。
执行此操作的脚本方法是:
set path foo/bar/baz/quux && mkdir -p $path && cd $path
我还发现缺少 $_
很烦人。一个(有点老套的)解决方案是创建一个这样的函数:
function cdl
echo $history[1] | read --array result
cd $result[-1]
end
现在您可以键入 cdl
而不是 cd $_
来切换到您刚刚创建的目录。
作为suggested in another thread
Alt+. 在光标输入处循环先前命令的参数:
mkdir -p ~/fish/previous/arg/demo
cd
# ^ hit Alt + .
cd ~/fish/previous/arg/demo
什么鱼 shell 相当于 mkdir -p foo/bar/baz/quux && cd $_
?
我知道 $history[1]
,但这里我只需要上一个命令的最后一个参数。
Fish 对此没有捷径,您将不得不重复该论点。
或者,如果它用于交互使用,请按 alt-up 循环浏览旧参数。
不幸的是,fish 不支持最后一个参数变量。
一种高效的交互方式是创建目录:
> mkdir -p foo/bar/baz/quux
然后键入 cd 和路径的第一个字符。
> cd f
此时鱼可能会自动建议整个路径。如果没有,您可以按 alt-up 进行历史令牌搜索,它一定会找到它。
执行此操作的脚本方法是:
set path foo/bar/baz/quux && mkdir -p $path && cd $path
我还发现缺少 $_
很烦人。一个(有点老套的)解决方案是创建一个这样的函数:
function cdl
echo $history[1] | read --array result
cd $result[-1]
end
现在您可以键入 cdl
而不是 cd $_
来切换到您刚刚创建的目录。
作为suggested in another thread Alt+. 在光标输入处循环先前命令的参数:
mkdir -p ~/fish/previous/arg/demo
cd
# ^ hit Alt + .
cd ~/fish/previous/arg/demo