我查看了 Stack Overflow 上所有类似的问题,并在他们的文档中尝试了很多东西。我目前的尝试如下。
我想要完成的是基于计算机用户的不同行为。我有一台工作计算机和一台家用计算机,当我在命令行中输入“代码”时,我希望工作计算机转到不同的目录,而不是我在家里输入它时想要的目录。我试过这个(我的工作用户名是 afk,home 是 sfk):
function code
set result (dirh)
if [contains "sfk" $result]
cd ~/rails
else if [contains "afk" $result]
cd ~/code
else
echo $result
end
end
目前,这是在抱怨“未知命令包含用户/sfk/.config/fish/”(当我输入这个时,我的密码是用户/sfk/.config/fish/)。我认为可能 contains 仅用于列表,但文档对此并不是特别清楚?知道我该怎么做吗?
编辑
刚刚尝试过,虽然它不再出错,但它最终出现在 else 情况下,它不应该,导致我的用户是 sfk,它包含在 dirh 字符串中:
function code
set result (dirh)
if test (contains "sfk" $result)
cd ~/rails
else if test (contains "afk" $result)
cd ~/code
else
echo $result
end
end