Bash 如何从命令行搜索goosh.org?
我想编写一个简单的bash脚本,从命令行搜索goosh.org并在浏览器中打开结果。(或者,您甚至不会将其称为bash脚本,因为它所做的只是进行浏览器调用。) 我创建了一个名为goosh的文件,其中包含一行:Bash 如何从命令行搜索goosh.org?,bash,shell,command-line,sh,command-line-interface,Bash,Shell,Command Line,Sh,Command Line Interface,我想编写一个简单的bash脚本,从命令行搜索goosh.org并在浏览器中打开结果。(或者,您甚至不会将其称为bash脚本,因为它所做的只是进行浏览器调用。) 我创建了一个名为goosh的文件,其中包含一行: open "http://goosh.org/#$1" 当搜索词仅为一个单词时,无需将搜索括在引号中: $ goosh monarch 但当我使用多个搜索词时,它会失败: $ goosh monarch butterfly 这不起作用: open "http://goosh.org/
open "http://goosh.org/#$1"
当搜索词仅为一个单词时,无需将搜索括在引号中:
$ goosh monarch
但当我使用多个搜索词时,它会失败:
$ goosh monarch butterfly
这不起作用:
open "http://goosh.org/#$1 $2 $3 $4 $5 $6 $7 $8 $9"
如何执行此操作?在浏览器中将十六进制值为0x20的空格转换为
%20
。您可能希望对输入值使用sed
:
echo 1 2 3 4 5 6 7 8 | sed -e 's/ /%20/'
将给您一个
1%202%203%204%205%206%207%208
我建议您以相同的方式解析脚本的“$@”
输入(提供给脚本的所有内容),看看这是否不能提供您想要的结果
编辑:
下面是一个简单的函数,您可以尝试:
function goosh() {
ARGS=$(echo "$@" | sed -e 's/ /%20/g');
echo "http://www.goosh.org/#$ARGS";
}
这实际上不会调用该站点;它只会将输出转储到您的控制台(这样您就可以确保变量是正确的)。只需将echo
替换为open
即可
例如:
$ goosh When will Apple buy stock in Microsoft
http://www.goosh.org/#When%20will%20Apple%20buy%20stock%20in%20Microsoft
十六进制值为0x20的空格在浏览器中转换为
%20
。您可能希望对输入值使用sed
:
echo 1 2 3 4 5 6 7 8 | sed -e 's/ /%20/'
将给您一个
1%202%203%204%205%206%207%208
我建议您以相同的方式解析脚本的“$@”
输入(提供给脚本的所有内容),看看这是否不能提供您想要的结果
编辑:
下面是一个简单的函数,您可以尝试:
function goosh() {
ARGS=$(echo "$@" | sed -e 's/ /%20/g');
echo "http://www.goosh.org/#$ARGS";
}
这实际上不会调用该站点;它只会将输出转储到您的控制台(这样您就可以确保变量是正确的)。只需将echo
替换为open
即可
例如:
$ goosh When will Apple buy stock in Microsoft
http://www.goosh.org/#When%20will%20Apple%20buy%20stock%20in%20Microsoft
十六进制值为0x20的空格在浏览器中转换为
%20
。您可能希望对输入值使用sed
:
echo 1 2 3 4 5 6 7 8 | sed -e 's/ /%20/'
将给您一个
1%202%203%204%205%206%207%208
我建议您以相同的方式解析脚本的“$@”
输入(提供给脚本的所有内容),看看这是否不能提供您想要的结果
编辑:
下面是一个简单的函数,您可以尝试:
function goosh() {
ARGS=$(echo "$@" | sed -e 's/ /%20/g');
echo "http://www.goosh.org/#$ARGS";
}
这实际上不会调用该站点;它只会将输出转储到您的控制台(这样您就可以确保变量是正确的)。只需将echo
替换为open
即可
例如:
$ goosh When will Apple buy stock in Microsoft
http://www.goosh.org/#When%20will%20Apple%20buy%20stock%20in%20Microsoft
十六进制值为0x20的空格在浏览器中转换为
%20
。您可能希望对输入值使用sed
:
echo 1 2 3 4 5 6 7 8 | sed -e 's/ /%20/'
将给您一个
1%202%203%204%205%206%207%208
我建议您以相同的方式解析脚本的“$@”
输入(提供给脚本的所有内容),看看这是否不能提供您想要的结果
编辑:
下面是一个简单的函数,您可以尝试:
function goosh() {
ARGS=$(echo "$@" | sed -e 's/ /%20/g');
echo "http://www.goosh.org/#$ARGS";
}
这实际上不会调用该站点;它只会将输出转储到您的控制台(这样您就可以确保变量是正确的)。只需将echo
替换为open
即可
例如:
$ goosh When will Apple buy stock in Microsoft
http://www.goosh.org/#When%20will%20Apple%20buy%20stock%20in%20Microsoft
非常感谢。我将如何获取这些输入,解析它们,并在浏览器中打开它们?您是在专门寻找一个shell脚本,还是一个函数也能正常工作(请参见编辑我的帖子)?是的,就是这样。完美的谢谢,谢谢。我将如何获取这些输入,解析它们,并在浏览器中打开它们?您是在专门寻找一个shell脚本,还是一个函数也能正常工作(请参见编辑我的帖子)?是的,就是这样。完美的谢谢,谢谢。我将如何获取这些输入,解析它们,并在浏览器中打开它们?您是在专门寻找一个shell脚本,还是一个函数也能正常工作(请参见编辑我的帖子)?是的,就是这样。完美的谢谢,谢谢。我将如何获取这些输入,解析它们,并在浏览器中打开它们?您是在专门寻找一个shell脚本,还是一个函数也能正常工作(请参见编辑我的帖子)?是的,就是这样。完美的谢谢