![]() |
1
32
为什么?当字符串被展开时,它会被拆分成单词,但不会重新计算以查找特殊字符,如引号或美元符号或。。。这是自1978年左右的伯恩壳牌(Bourne shell)以来,壳牌一直“一贯”的做法。 修复
在
或者,如果勇敢/鲁莽,使用
另一方面,谨慎往往是勇敢的最好部分,与
注意,Bash的扩展序列在 Shell Expansions 在GNU Bash手册中。请特别注意第3.5.3节Shell参数扩展、第3.5.7节单词拆分和第3.5.9节引号删除。 |
![]() |
2
5
当您将引号字符放入变量中时,它们只会变成纯文本(请参见 http://mywiki.wooledge.org/BashFAQ/050 ;感谢@tripleee指出此链接) 相反,请尝试使用数组传递参数:
|
![]() |
3
4
在研究这个和相关的问题时,我很惊讶没有人提到使用显式子shell。对于bash和其他现代shell,可以显式地执行命令行。在bash中,它需要-c选项。
完全符合最初提问者的要求。这种技术有两个限制:
此外,此技术还处理重定向和管道,其他外壳也可以工作。您还可以使用bash内部命令以及在命令行中工作的任何其他命令,因为您实际上是要求子shell bash将其直接解释为命令行。这里有一个更复杂的例子,一个有点复杂的l s-l变体。
我用这种方法和参数数组构建了命令处理器。一般来说,这条路 许多的 更容易编写和调试,而且回显正在执行的命令也很简单。OTOH,param数组在确实有抽象的参数数组时工作得很好,而不是仅仅需要一个简单的命令变量。 |
![]() |
July · 如何定义数字间隔,然后四舍五入 1 年前 |
![]() |
user026 · 如何根据特定窗口的平均值(行数)创建新列? 1 年前 |
|
Ashok Shrestha · 需要追踪特定的颜色线并获取坐标 1 年前 |
![]() |
Nicote Ool · 在FastApi和Vue3中获得422 1 年前 |
|
Abdulaziz · 如何对集合内的列表进行排序[重复] 1 年前 |
![]() |
asmgx · 为什么合并数据帧不能按照python中的预期方式工作 1 年前 |