1
34
有一些方法:
这些方法适用于大多数情况,但当参数中有空格时将失败。然而,我确实认为有比使用更好的方法
|
2
11
|
3
4
最常见的是,
在Bash,
|
4
4
由于希望shell解析/proc/cmdline内容,因此很难避免对其进行评估。
这显然是危险的,因为它会盲目地运行内核命令行上指定的任何东西,比如
逃逸空间(\x20)听起来是最简单、最安全的方法。 另一个重要的选择是使用一些解析器,它们可以理解类似shell的语法。 在这种情况下,您甚至可能不再需要外壳。 例如,对于python:
|
5
3
使用
|
6
2
可以使用bash执行以下操作,将这些参数转换为$cmdline_union和$cmdline_wlan等变量:
然后你会引用和/或逃避一些东西,就像在普通的外壳中一样。 |
7
1
时髦的:
您可以定义一个函数并给出$CMDLINE 无报价 作为函数的参数。然后调用shell的解析机制。注意,您应该在它将使用的shell上测试它——zsh使用引号做了一些有趣的事情;-)。 然后你可以告诉用户在shell中进行类似的引用:
(posh——符合策略的普通SHell,除去标准POSIX之外的任何功能) |
8
-1
建立 here 使用awk是一种很好的方法,不幸的是,它只能使用双引号:
|
lonix · 使用sed从JSON中提取非贪婪正则表达式 1 年前 |
g00dds · 如何在bash中从文件中的每一行解码base64? 2 年前 |
Paul · Bash wait命令忽略指定的进程ID 2 年前 |
RafaÅ G. · 如何使用从文件读取的多行参数运行ssh? 2 年前 |
Priya · 在shell脚本中多次运行python脚本 2 年前 |