如果使用一个衬板,则使用shell脚本删除clearcase视图(如果存在)

adbdkb

我想测试是否存在清除案例视图,并且仅在存在清除命令的情况下执行remove命令。我正在尝试从Linux 6.x环境中的Shell脚本执行此操作。我试图将条件格式设置为单行格式以及完整的“ if”语句,但似乎无法使其正常工作。我需要做些什么才能使两种方法(如果语法完整)都可以正常工作?

这是最新状态的代码

#!/bin/ksh
#
STREAMNAME=app_stream_int
PVOB=domain_pvob
VOB=domain_app

viewdir=/opt/local/software/rational/viewstorage
shareddir=/opt/shared/test
storagedir=${shareddir}/viewstorage
projectdir=${shareddir}/projects

ctdir=/opt/rational/clearcase/bin
viewname=$viewdir/test_$STREAMNAME.vws
viewtag=test_$STREAMNAME

echo "STREAMNAME $STREAMNAME - PVOB $PVOB - VOB $VOB"
echo "Removing View if it exists ... \n"

#  [ $(${ctdir}/cleartool lsview ${viewname}) ] && { ${ctdir}/cleartool rmview ${viewname}; echo "view removed" }

#  [ ${ctdir}/cleartool lsview -long ${viewtag} ] && { ${ctdir}/cleartool rmview ${viewname}; echo "view removed" }

#  ${ctdir}/cleartool lsview -long ${viewtag} | grep "Tag" && { ${ctdir}/cleartool rmview ${viewname}; echo "view removed" }

if [ ${ctdir}/cleartool lsview -long ${viewtag} | grep 'Tag' == "0" ]
then
    echo "view found"
    ${ctdir}/cleartool rmview ${viewname}
fi

我更喜欢单线解决方案,但是“如果”声明也可以。

主教

如果该命令遵循UNIX惯例的退出代码,则一般的单行代码如下所示

command && { success1; success2; } || { failure1; failure2; }

后面的列表&&指定命令成功执行时(以退出0||应执行的操作,而下面的列表指定命令执行失败时应执行的操作。在列表中,请注意,所有命令都以分号结尾,包括最后一个。

对于您的特定情况,这看起来会起作用:

"${ctdir}"/cleartool lsview "${viewname}" && { "${ctdir}"/cleartool rmview "${viewname}" && echo "view removed" || echo "cannot remove view"; }

这是使用标准命令的实际操作模式的示例:

$ ls foo && { rm -f foo && echo 'removed' || echo 'not removed'; }
ls: cannot access foo: No such file or directory

$ touch foo
$ ls foo && { rm -f foo && echo 'removed' || echo 'not removed'; }
foo
removed

$ sudo touch /foo
$ sudo chmod 600 /foo
$ ls /foo && { rm -f /foo && echo 'removed' || echo 'not removed'; }
/foo
rm: cannot remove ‘/foo’: Permission denied
not removed

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如果匹配最后一个单词但有空格,请使用perl一个衬板+打印行

如果使用IF语句在PostgreSQL中存在另一个表,如何删除一个表

使用Shell脚本检查另一个文件中的编号(如果在范围内)

如何将bash脚本重写为一个衬板?

使用postgres进行字符串操作,如何删除第一个位置的字符(如果存在)

如果其中存在一个单词,如何删除整行?

删除视图(如果存在)

为此有一个衬板吗?

如果它使用javascript / jquery在第二个列表中不存在,则从第一个选项列表中删除

为什么bash脚本使用,如果和grep工作每隔一个电话吗?

如果使用bash脚本语言编写如何在另一个内部编写

在Google驱动器上创建一个文件夹(如果不存在),然后使用Python脚本将文件上传到该文件夹

Helm模板-如何在数组中使用“如果存在至少一个”?

如果表中存在行,则在SQL中使用另一个表值

如果使用 jq 不存在,则在每个对象中插入一个键值对

我如何有条件地使一个类使用特征(如果存在)?

如果仅存在一个Observable参数,如何使用RxJava Observable.zip

如果使用变量在sqlite3 python中不存在,则创建一个表

如果值存在,则使用另一个数组对数组进行排序

如果两个数组中都存在值,则使用KEY创建一个数组?

如果另一个文件不存在,如何搜索并使用它?

如果在使用 shell 脚本的范围内检查另一个文件中的数字并输出该匹配项的所有信息

如果我使用 git 从项目中删除一个文件,如果我回到较早的提交,它会恢复吗?

熊猫:如果预先存在的列包含一些值,则使用“是”创建一个新列;如果该列的值为“”,则创建一个“否”

如果是正确的,请使用ClassName在dom中删除一个类?

如果更改了另一个选择,则使用Bootstrap Select删除选择的属性

如果另一个标签为空,则使用XSLT从XML文件中删除标签

如果使用QRegExp是逗号,如何删除第一个字符?

从数组中删除一个值(如果存在)或不存在将其推送到数组