【发布时间】:2019-02-06 01:51:14
【问题描述】:
您好,我正在尝试将我的 .bashrc 转换为 fish 格式,几乎完成了,文档中大部分内容都很清楚,但这部分让我很头疼。所以我的 gnupg 可以与我的 yubikey ssh 等一起使用。 鱼的版本是Arch GNU/Linux下的最新3.0
BASH 上的原创:
# Set SSH to use gpg-agent
unset SSH_AGENT_PID
if [ "${gnupg_SSH_AUTH_SOCK_by:-0}" -ne $$ ]; then
export SSH_AUTH_SOCK="/run/user/$UID/gnupg/S.gpg-agent.ssh"
fi
echo "UPDATESTARTUPTTY" | gpg-connect-agent > /dev/null 2&>1
我的一半变成了鱼:
set -e SSH_AGENT_PID
if [ "${gnupg_SSH_AUTH_SOCK_by:-0}" -ne $$ ]
set -x SSH_AUTH_SOCK="/run/user/$UID/gnupg/S.gpg-agent.ssh"
end
echo "UPDATESTARTUPTTY" | gpg-connect-agent > /dev/null 2>&1
正如你在上面看到的,到目前为止,我已经用 set -e 转换了 stdin 和 stderror pine 以及 unset 变量,我遇到的错误对我来说有点模糊:
~/.config/fish/config.fish (line 33): ${ is not a valid variable in fish.
if [ "${gnupg_SSH_AUTH_SOCK_by:-0}" -ne $$ ]
^
from sourcing file ~/.config/fish/config.fish
called during startup
任何帮助将不胜感激, 顺便说一句,迁移也很好:)那里有吗?
[edit] 好的,感谢下面的回复,现在我所有的 bash 环境、配置文件、bashrc 等都被翻译成 fish 并 100% 仅用作我的 shell
【问题讨论】:
-
一个很好的问题是关于一个狭窄的、具体的问题——所以“我如何将程序-X 翻译成语言-Y?”是一个不好的问题,但是“在不触发错误-Z 的情况下,用语言-Y 编写事物-X 的方式是什么?”可以是一个很好的。我已编辑标题以适当缩小范围。
-
始终指定您正在使用的程序的版本。在这种情况下,fish 3.0 最近发布,它与您的问题与 fish 2.x 有一些差异。
-
它是 3.0 我编辑了问题对不起。