小编Mar*_*ial的帖子

如何在 bash 脚本中执行 rm -v !(*.yaml)?

脚本中写道:

rm -v !\(*.yaml\) ;\
Run Code Online (Sandbox Code Playgroud)

这会产生

rm: cannot remove '!(*.yaml)': No such file or directory
Run Code Online (Sandbox Code Playgroud)

但在命令行中工作正常。尝试过各种方式逃避:

rm -v !\(*.yaml\) ;\
Run Code Online (Sandbox Code Playgroud)

似乎无法找出适当的转义序列,我根本不明白。摆脱括号是我的第一步。然后试图逃跑!,然后*。还尝试使用反引号不转义,但出现错误“rm 缺少操作数”。我有点难住了。已经花了大约一个小时 - 只是“rm 所有内容而不是 yaml”...任何人都可以发现错误/建议修复吗?

我还尝试过#!/bin/sh 和#!/bin/bash。心想也许会有一些效果。

linux bash shell-script

9
推荐指数
2
解决办法
1472
查看次数

标签 统计

bash ×1

linux ×1

shell-script ×1