首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当符号链接时,Pbcopy充当铅糊的角色。

当符号链接时,Pbcopy充当铅糊的角色。
EN

Unix & Linux用户
提问于 2019-05-12 06:40:52
回答 1查看 55关注 0票数 2

为了在环境之间保持信任,我认为在MacOS上执行以下操作是个好主意。

代码语言:javascript
复制
ln -s /usr/bin/pbcopy /usr/local/bin/xclip

但是,我的xclip符号链接并不像pbcopy那样。相反,由于某种原因,它充当了一个pbpaste

代码语言:javascript
复制
$ echo hello | /usr/bin/pbcopy

$ echo hello | /usr/bin/pbpaste
hello

$ echo hello | /usr/local/bin/xclip
hello

第三个命令的行为应该像第一个命令,而不是第二个命令。

有什么想法吗?

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2019-05-12 09:47:40

这通常发生在实现多个行为并通过检查调用它们的名称来决定哪一个行为的程序中。

这种技术在一些流行的工具中使用,比如busybox,它提供了大多数典型的Linux/Unix标准实用程序,都是在一个二进制文件中提供的。

在本例中,似乎相同的二进制文件同时实现了“复制”和“粘贴”行为,默认情况下它的行为类似于“粘贴”(除非被调用的名称与pbcopy精确匹配)。

通过使xclip成为一个调用pbcopy而不是符号链接的shell脚本,您可以轻松地解决这个问题。这大致相当于您目前拥有的内容:

代码语言:javascript
复制
#!/bin/sh
exec pbcopy "$@"

exec确保pbcopy将在相同的进程中运行,将取代在执行过程中不再存在的shell。

"$@"将把所有参数逐字传递给pbcopy (旧的shell需要像${1+"$@"}这样的东西来正确地处理参数,但在shell的现代实现中并非如此)。这与使用符号链接方法时发生的参数相同。

不要忘记使脚本可执行:

代码语言:javascript
复制
$ chmod +x /usr/local/bin/xclip

我不确定xclip所期望的参数是否真的与pbcopy解释的参数相匹配,但我猜它们不应该。如果您想将xclip通常使用的参数转换为pbcopy解析的参数,那么这个脚本也是一个合适的地方。

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

https://unix.stackexchange.com/questions/518497

复制
相关文章

相似问题

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