如何在 MAC OS 中创建一个可以在终端中打开 URL 的别名?

How to create an alias in MAC OS that can open a URL in terminal?

我做了一个别名

zsh

alias google="open https://www.google.com/s\?wd\="

然后

$ source ~/.zshrc
$ google test

但是 Chrome 还没有被调用,它打印

The file /Users/a2014/test does not exist

那么,我怎样才能只写 alias 并通过 cli 调用 google?

您不能使用别名执行此操作,因为无法将您的参数 test 与别名扩展产生的任何内容连接起来。您的最终命令行是:

open https://www.google.com/s\?wd\= test

(注意 test 之前的 space),它要求 OS X 使用相应的默认应用程序打开 https://www.google.com/s\?wd\=test

改用函数:

google() {
  open "https://www.google.com/search?q="
}
google test
# => opens https://www.google.com/search?q=test

感谢@Amadan!

作为评论有点笨拙的小改进,否则我会那样做。无论如何,你可能想要 url-encode 这个问题,这样你就可以用空格等做这样的事情......

google "who is mr obama?"

在这种情况下你可以使用:

google() {
   encoded=$(php -r "echo rawurlencode('');")
   open "https://www.google.com/search?q=$encoded"
}