我想要一个bash函数来改变这个......
download HELLO&P=1&Q=2
进入这个...
aria2c -d ~/Downloads "HELLO&P=1&Q=2"
HELLO&P=1&Q=2
是一个MAGNET链接。如果它周围没有双引号,aria2c不起作用。但我似乎无法将它们放在一起。问题似乎是MAGNET链接末尾有一系列&key=value
对(在我的例子&P=1&Q=2
中),这些似乎被剥离并与链接的其余部分分开(即{ {1}})。
这是我的HELLO
功能。
.bash_profile
以下是输出示例。
download() {
aria2c -d ~/Downloads "$1"
}
甚至不确定~ $ download HELLO&P=1&Q=2
[1] 7389
[2] 7390
aria2c -d /Users/lukejanicke/Downloads HELLO
[1]- Done download HELLO
[2]+ Done P=1
~ $
的去向。使用真实的MAGNET链接,所有部件都以此枚举方式显示。
我需要一些方法将整个MAGNET链接捕获为单个参数,然后在链接周围用引号执行Q=2
命令。
答案 0 :(得分:2)
&
是shell中的特殊字符。您需要引用包含它的字符串:
download 'HELLO&P=1&Q=2'
否则,它被理解为在后台运行左侧的命令分隔符。
答案 1 :(得分:2)
双引号使bash解释内部字符串。
我用以下方法对其进行了测试:
$ download() { aria2c -d ~/Downloads "$1"; }
victor 0 12:48 /Users/victor/tmp
$ download "http://localhost:8080/HELLO&P=1&Q=2"
10/07 12:48:56 [NOTICE] Downloading 1 item(s)
10/07 12:48:56 [ERROR] CUID#7 - Download aborted.
URI=http://localhost:8080/HELLO&P=1&Q=2E