首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用` `pbcopy` `作为cd命令的路径

使用` `pbcopy` `作为cd命令的路径
EN

Stack Overflow用户
提问于 2013-05-24 01:09:38
回答 2查看 1.4K关注 0票数 1

我在Mac上使用Automator来设置一个服务,该服务将一个选定的文件夹作为参数传递给一个bash shell脚本。在脚本中,我这样做:

代码语言:javascript
复制
for f in "$@"; do
    printf "%q\n" "$f" | pbcopy
done

如果我这样做了:

代码语言:javascript
复制
echo `pbpaste`

我得到了带有空格转义的所选文件夹的路径(\)。然后,我想使用此路径cd到该目录,并执行一系列其他操作(创建一个空白目录结构)。我希望我能做到:

代码语言:javascript
复制
cd `pbpaste`

但这不管用。如果我手动输入路径,cd会正常工作,所以我认为是数据类型或返回等问题??

我承认我真的不知道这个脚本实际上在做什么,可能是完全错误的,但是如果有人能解释这里发生了什么,以及如何让它工作,那就太好了,但更好的是,对于一个完全初学者开始学习shell脚本的人来说,这将是一个非常好的参考资料。我真的很喜欢深入这方面的想法,但我找到的所有资源要么是完全基础的(cd,ls,pwd等),要么是非常高的水平,并假设有一堆以前的知识。我真正想要的是一个完整的语言参考和一些实际的例子,就像你为我更习惯的语言(HTML/CSS/JS/AS3)找到的那样,如果存在这样的东西的话。

为任何帮助干杯:)

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-05-24 03:50:32

使用%q格式时,将向字符串添加文字反斜杠,当您将其与cd一起使用时,shell不会将其作为转义字符处理。

剪贴板对于进程间通信很有用;在单个脚本中,只使用变量临时保存信息会更容易。f中已经有了路径名,所以只需使用它:

代码语言:javascript
复制
cd "$f"

注意,我引用了f的扩展,因此路径名中的任何空格都作为cd的单个参数的一部分传递。

票数 2
EN

Stack Overflow用户

发布于 2014-11-30 14:21:11

我同意@chepner的回答,但是为了google的结果,你可以简单地执行以下操作:

代码语言:javascript
复制
cd $(pbpaste)
票数 10
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16719970

复制
相关文章

相似问题

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