使用其中包含 & 符号的参数调用 Bash 函数
Calling a Bash function with an argument that has an ampersand in it
我想要一个 bash 函数来转换这个……
download HELLO&P=1&Q=2
进入这个……
aria2c -d ~/Downloads "HELLO&P=1&Q=2"
HELLO&P=1&Q=2
是一个磁铁 link。如果它周围没有双引号,aria2c 就不起作用。但我似乎无法将它们放在一起。问题似乎是 MAGNET link 在末尾有一系列 &key=value
对(在我的示例中 &P=1&Q=2
),这些似乎被剥离并与其余部分分开link(即 HELLO
)。
这是我的 .bash_profile
函数。
download() {
aria2c -d ~/Downloads ""
}
这是一个示例输出。
~ $ download HELLO&P=1&Q=2
[1] 7389
[2] 7390
aria2c -d /Users/lukejanicke/Downloads HELLO
[1]- Done download HELLO
[2]+ Done P=1
~ $
甚至不确定 Q=2
去了哪里。使用真正的 MAGNET links,所有部件都以这种枚举方式显示。
我需要一些方法将整个 MAGNET link 捕获为单个参数,然后在 link.
周围执行带有引号的 aria2c
命令
&
是shell中的一个特殊字符。您需要引用包含它的字符串:
download 'HELLO&P=1&Q=2'
否则,它被理解为在后台运行左侧的命令分隔符。
双引号使 bash 解释内部字符串。
我测试过:
$ download() { aria2c -d ~/Downloads ""; }
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
我想要一个 bash 函数来转换这个……
download HELLO&P=1&Q=2
进入这个……
aria2c -d ~/Downloads "HELLO&P=1&Q=2"
HELLO&P=1&Q=2
是一个磁铁 link。如果它周围没有双引号,aria2c 就不起作用。但我似乎无法将它们放在一起。问题似乎是 MAGNET link 在末尾有一系列 &key=value
对(在我的示例中 &P=1&Q=2
),这些似乎被剥离并与其余部分分开link(即 HELLO
)。
这是我的 .bash_profile
函数。
download() {
aria2c -d ~/Downloads ""
}
这是一个示例输出。
~ $ download HELLO&P=1&Q=2
[1] 7389
[2] 7390
aria2c -d /Users/lukejanicke/Downloads HELLO
[1]- Done download HELLO
[2]+ Done P=1
~ $
甚至不确定 Q=2
去了哪里。使用真正的 MAGNET links,所有部件都以这种枚举方式显示。
我需要一些方法将整个 MAGNET link 捕获为单个参数,然后在 link.
周围执行带有引号的aria2c
命令
&
是shell中的一个特殊字符。您需要引用包含它的字符串:
download 'HELLO&P=1&Q=2'
否则,它被理解为在后台运行左侧的命令分隔符。
双引号使 bash 解释内部字符串。
我测试过:
$ download() { aria2c -d ~/Downloads ""; }
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