我的问题
我的核心问题是我需要从 c shell 启动 gnome-keyring-daemon。在 bash 中,这很容易:
> export `gnome-keyring-daemon`
这相当于:
> export GNOME_KEYRING_SOCKET=/tmp/0123.1.sds/keyring-abcdef/socket GNOME_KEYRING_PID=012345
我的目标是在 c shell 中获得相同的功能,但我的命令行技能无法胜任这项任务。
我试过的
如果我跑
回声
gnome-keyring-daemon
| tr '=' ' ' | sed s/GNOME_KEYRING_SOCKET/setenv\ GNOME_KEYRING_SOCKET/ | sed s/GNOME_KEYRING_PID/\;setenv\ GNOME_KEYRING_PID/
我有一个好的开始:
setenv GNOME_KEYRING_SOCKET /tmp/0123.1.sds/keyring-abcdef/socket ;setenv GNOME_KEYRING_PID 012345
尽管我可以将该输出复制并粘贴到命令行并使其工作,但如果我将该语句括在刻度中以使其在一行上工作,我会收到以下错误:
无效的空命令。
我对其进行了研究,发现它与潜入需要转义或删除的换行符有关;但是,即使在为 \r 和 \n 添加替换命令后,我仍然会收到错误,如下所示:
> | tr '\r' ' ' | tr '\n' ' ' |
我在寻找什么
我真的只需要我可以添加到我的 .cshrc 文件中的任何东西来启动 gnome-keyring-daemon。如果我走错了路,我很乐意听到另一种方法。
谢谢!
我尝试的最后一件事
为了真正简化这一点,我还尝试一次只设置一个变量:
setenv GNOME_KEYRING_PID `echo -n `gnome-keyring-daemon` | sed 's/.*GNOME_KEYRING_PID=\([0-9]\+\)/\1/'`
这也给了我一个“无效的空命令”。尽管这有效,但消息:
setenv GNOME_KEYRING_PID `echo '1234'`