首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何基于sed结果(对于gnome-keyring-守护进程)进行setenv

如何基于sed结果(对于gnome-keyring-守护进程)进行setenv
EN

Stack Overflow用户
提问于 2012-03-21 19:05:51
回答 2查看 1.5K关注 0票数 3

我的问题

我的核心问题是我需要从core启动gnome-keyring-daemon。在bash中,这很简单:

代码语言:javascript
复制
> export `gnome-keyring-daemon`

相当于:

代码语言:javascript
复制
> export GNOME_KEYRING_SOCKET=/tmp/0123.1.sds/keyring-abcdef/socket GNOME_KEYRING_PID=012345

我的目标是在skills中获得相同的功能,但我的命令行技能不能胜任这项任务。

我试过什么

如果我跑了

回波gnome-keyring-daemon _ tr '=‘’x_x/GNOME_KEYRING_套接字/setenv\GNOME_KEYRING_套接字/x_ sed s/ GNOME_KEYRING_PID/

我有一个很好的开始:

代码语言:javascript
复制
setenv GNOME_KEYRING_SOCKET /tmp/0123.1.sds/keyring-abcdef/socket ;setenv GNOME_KEYRING_PID 012345

尽管我可以将输出复制并粘贴到命令行并使其正常工作,但如果我将该语句括为ticks以使其在一行上工作,则会得到以下错误:

无效的空命令。

我研究了它,发现它与需要转义或删除的新线溜进来有关;然而,即使在添加了\r和\n的替换命令之后,我仍然会得到这样的错误:

代码语言:javascript
复制
> | tr '\r' ' ' | tr '\n' ' ' |

我在找什么

我真的需要任何东西,我可以添加到我的.cshrc文件,将启动守护进程。如果我走错了轨道,我很乐意听到另一种方法。

谢谢!

最后一件事我尝试了

为了简化这个问题,我还试着一次只设置一个变量:

代码语言:javascript
复制
setenv GNOME_KEYRING_PID `echo -n `gnome-keyring-daemon` | sed 's/.*GNOME_KEYRING_PID=\([0-9]\+\)/\1/'`

这也给了我一个“无效的空命令”。尽管这样做是可行的:

代码语言:javascript
复制
setenv GNOME_KEYRING_PID `echo '1234'`
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2012-03-23 17:41:17

感谢“庇护所”和“gbulmer”,感谢您的帮助。我真的很讨厌回答我自己的问题,但这可能会对将来的人有所帮助.

最后,我更新了我的C Shell脚本,以便在多个单独的行上设置变量:

代码语言:javascript
复制
set gkd = `gnome-keyring-daemon`

set pid = `echo $gkd |  sed 's/.*GNOME_KEYRING_PID=\([0-9]\+\)/\1/'`
set socket = `echo $gkd | sed 's/GNOME_KEYRING_SOCKET=\([^ ]\+\).\+/\1/'`
setenv GNOME_KEYRING_PID $pid
setenv GNOME_KEYRING_SOCKET $socket
票数 2
EN

Stack Overflow用户

发布于 2012-03-21 19:14:23

您试过echo -n gnome-keyring-daemon | ...回显添加了新行吗?

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9811193

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档