我正在尝试编写一个用于测试的bash脚本,它接受一个参数并通过curl将其发送到网站.我需要对值进行url编码,以确保正确处理特殊字符.做这个的最好方式是什么?
这是我到目前为止的基本脚本:
#!/bin/bash
host=${1:?'bad host'}
value=$2
shift
shift
curl -v -d "param=${value}" http://${host}/somepath $@
Run Code Online (Sandbox Code Playgroud) 我的脚本在网站上搜索歌曲,但是当有空格时它不会搜索,您必须添加下划线。我想知道是否有办法用下划线替换我的空格。你能不能用我现在的代码告诉我怎么做?
set search to text returned of (display dialog "Enter song you wish to find" default answer "" buttons {"Search", "Cancel"} default button 1)
open location "http://www.mp3juices.com/search/" & search
end
Run Code Online (Sandbox Code Playgroud) 我需要使用将在 BusyBox Ash、Dash、Bash 和 ZSH 中运行的 shell 函数对字符串进行 URL 编码。
\n\n它将在不同的 Docker 容器中运行,因此安装尽可能少的依赖项会更好。
\n\n笔记:
\n\n问题“在 bash 脚本中对字符串进行 URL 编码”要求提供特定于 Bash 的脚本,唯一提供的答案取决于容器上安装的 PHP。
问题“如何为curl命令对数据进行urlencode? ”特定于curl,但肯定对非特定答案开放。然而,这 25 个答案似乎都不适用。那里的答案之一只能将数据发送到curl,而有些特定于bash或ksh,其他一些则需要Perl , PHP , Python , Lua , NodeJS , Ruby , gridsite -clients,uni2ascii,jq,awk或sed安装。其中之一不需要额外的依赖项,但不保留a、1和 等字符~。
我期望得到什么:
\n\n$> urlencode \'/\'\n%2f\n\n$> urlencode \'\xc3\xa7\'\n%c3%a7\n\n$> …Run Code Online (Sandbox Code Playgroud)