【发布时间】:2020-11-27 04:24:23
【问题描述】:
我正在尝试将旧的安装脚本转换为 Dockerfile 并不断遇到这样的语法:
# unpack the tar
reportandprint "..Unpacking archive\n"
suWrap "tar xf $DISTDIR/$ISTAR"
undo "rm -rf $INSROOT/$ISDIR/*"
# make /var and /etc trees
reportandprint "..Creating cache directory\n"
reportcmdandeval "mv $INSROOT/$ISDIR/var $VARROOT/$ISDIR"
undo "rm -rf $VARROOT/$ISDIR"
suWrap "ln -s $VARROOT/$ISDIR $INSROOT/$ISDIR/var"
suWrap "mkdir $INSROOT/$ISDIR/var/catalogs"
undo "rm -f $INSROOT/$ISDIR/var"
有人可以在这里向我解释一下“撤消”命令的用法吗?如果上一行无法执行,这是一个后备吗?这似乎不是常见的用法,到目前为止,我在网上搜索到的只是很多人希望“撤消”他们在 shell 中无意中完成的事情:)
任何帮助将不胜感激!
【问题讨论】:
-
undo不是标准命令。它可能是您特定项目中定义的函数。 -
这些命令都不是标准的 Linux 命令。检查脚本的其余部分,看看它们是否被定义为函数。
-
这些命令不仅是非标准的,而且它们的定义方式也使它们容易出错。有能力的人会接受参数列表作为数组,而不是字符串。
标签: linux shell unix scripting