groovy Jenkins在shell命令中使用表达式/括号

unguejic  于 2022-11-01  发布在  Jenkins
关注(0)|答案(1)|浏览(241)

我想运行一个简单的命令rm -rv !(_deps)来删除除了_deps目录之外的所有填充文件。到目前为止,我已经尝试过了:

  • 导致script.sh: line 1: syntax error near unexpected token('sh '''rm -rv !(_deps)'''`
  • 导致rm: cannot remove '!(_deps)': No such file or directorysh 'rm -rv !\\(_deps\\)'(但它确实存在)
  • sh 'rm -rv !\(_deps\)'导致了unexpected char: '\'
  • 导致syntax error near unexpected token('sh 'rm -rv !(_deps)'`
cwdobuhd

cwdobuhd1#

在Bash中,要使用模式匹配,必须启用extglob:
确保你的shell执行器被设置为bash。

sh """
   shopt -s extglob
   rm -rv !(_deps)
  """

如果你不想启用extglob,你可以使用一个不同的命令来删除目录。

ls | grep -v _deps | xargs rm -rv

在Jenkins

sh """
    ls | grep -v _deps | xargs rm -rv
    """

相关问题