Ich möchte testen, ob eine Clearcase-Ansicht existiert, und den remove-Befehl nur ausführen, wenn er existiert. Ich versuche es mit einem Shell-Skript in einer Linux 6.x-Umgebung. Ich habe versucht, meine Bedingungen sowohl als One-Liner als auch als vollständige "if" -Anweisung zu formatieren, aber ich scheine nicht in der Lage zu sein, es zum Laufen zu bringen. Was muss ich tun, damit beides - One-Liner und Full-If-Syntax - funktioniert?Shell-Skripts verwenden, um die Clearcase-Ansicht zu entfernen, wenn sie mit einem Liner existiert, wenn
Hier ist der Code, in seinem neuesten Stand
#!/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
Ich würde es vorziehen, eine Einzeiler Art der Lösung, aber ‚wenn‘ Aussage wird auch funktionieren.
Wie etwa: '" $ {ctdir}/cleartool "lsview" $ {viewname} ">/dev/null 2> & 1 && {" $ {ctdir} "/ cleartool rmview" $ {viewname} "; Echo "Ansicht entfernt"; } ' – bishop
Ich werde das versuchen. Wenn ich einen Fail-Teil hinzufügen möchte, der das Echo "Ansicht nicht entfernen" anzeigt, wie würde ich das tun? Kannst du, wenn möglich, auch erklären, wie das funktioniert? – adbdkb
Hinweis: Um eine Ansicht wirklich zu entfernen, müssen Sie die Markierung aufheben und die Registrierung aufheben: siehe nukeview in http://stackoverflow.com/a/4319090/6309. – VonC