脚本中写道:
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。心想也许会有一些效果。