unix - letras - crear directorio en ubuntu
Cómo ejecutar múltiples comandos Unix de una vez (3)
No tengo acceso a Clearcase para probar cosas, pero a veces, por experiencia previa, necesitará RTFM, tales herramientas, ya sea que acepte un conducto invertido o un archivo de script de entrada, busque en la documentación la sintaxis, como:
Cleartool < echo
command_sequence
echo
command_sequence | Cleartool -
| Cleartool -
o
Cleartool -f
o secuencia de comando o
Cleartool -c
o secuencia de comando o
Cleartool run
o secuencia de comando o
Si encuentra alguna variante de lo anterior, haga el truco, háganoslo saber publicando su propia respuesta para que la siguiente persona con el problema se pueda beneficiar.
Estoy intentando ejecutar varios comandos en una sola toma, pero para mi sorpresa, solo se ejecuta el primer comando y se omite el resto. Y el comando es
cleartool setview view1234 ; cleartool setactivity activity456 ; cd /vobs/app/src/epw/WEB-INF/scripts ; pwd
Y la salida del comando anterior es
You can now run ''clearquest'' to start Rational ClearQuest.
Pero, en cambio, espero ver las siguientes 3 líneas de salida:
You can now run ''clearquest'' to start Rational ClearQuest.
Set activity "activity456" in view "view1234".
/vobs/app/src/epw/WEB-INF/scripts
Mis esfuerzos de búsqueda arrojaron pocas variaciones más para el mismo comando al reemplazar el punto y coma (;) con el símbolo comercial (&) o pipe (|), pero parece que nada funciona.
¿Alguna sugerencia / idea sobre cómo ejecutar múltiples comandos como el anterior?
No estoy seguro de lo que intentas hacer, ya que parece ser parte de un espacio problemático más grande, pero ...
cleartool setact -view view1234 activity456
trabaja para establecer una actividad en la vista, luego
cd /view/view1234/vobs/app/src/epw/WEB-INF/scripts
te llevará allí. O bórrelos para obtener su resultado:
cleartool setact -view view1234 activity456 && cd /view/view1234/vobs/app/src/epw/WEB-INF/scripts && pwd
La instrucción <stmt1> && <stmt2>
es una abreviación para if [[ <stmt1> ]]; then <stmt2>
if [[ <stmt1> ]]; then <stmt2>
Consulte la página man de KSH para obtener más información sobre la ejecución de comandos de Unix "de una sola vez".
Un punto y coma (;) provoca la ejecución secuencial de la canalización anterior; un signo de y comercial (&) provoca la ejecución asincrónica de la canalización anterior (es decir, el shell no espera a que la tubería finalice). El símbolo | y provoca la ejecución asíncrona de la tubería precedente con un conducto bidireccional establecido para el shell primario; ... El símbolo && (| |) hace que la lista que sigue se ejecute solo si la tubería anterior devuelve un valor cero (distinto de cero).
No utilice cleartool setview
: cleartool setview
el shell actual en una subshell, por lo que el resto se salta cuando se ejecuta en una sola línea.
Y por eso funciona cuando se ejecuta uno por uno (los dos últimos se ejecutan en la subshell)
Siempre trabaje con la ruta completa de la vista dinámica : /view/aview/vobs/avob/...
, en lugar de setview
(que no necesita).
Si debe usar cleartool setview
, entonces cleartool setview
con la opción -exec
( como en esta respuesta ):
cleartool setview -login -exec "command 1; command 2; command 3" view_tag
En tu caso:
cleartool setview -exec ''cleartool setactivity activity456 ; cd /vobs/app/src/epw/WEB-INF/scripts ; pwd'' view1234
Sin setview:
El OP pregunta:
Digamos que mi punto de vista llamado
humanbeing
está enuniverse/planet/earth/humanbeing.vws
¿Cómo uso el comando
startview
?
Es algo así como
cleartool startview universe/planet/earth/humanbeing
o
cleartool startview cd universe/planet/earth/humanbeing
En ambos casos, dice el error: no se pudo establecer la etiqueta de visualización
universe/planet/earth/humanbeing
Para estar seguro, haga una cleartool lsview -s | grep humanbeing
cleartool lsview -s | grep humanbeing
: eso te dará la etiqueta de vista.
Eso debería ser:
cleartool startview humanbeing
cd /view/humanbeing/vobs/<avob>
universe/planet/earth/humanbeing.vws
es el almacenamiento de vista, no una etiqueta de vista.
Asegúrate de eso
- está montado (
cleartool mount /vobs/avob
) -
myapp/WEB-INF/scripts
está presente en/view/humanbeing/vobs/<avob>
No intente hacer ningún enlace simbólico en /vobs
: /vobs
es un punto de montaje especial de MVFS (Multi-Version FileSystem), no una carpeta normal.
Asegúrese de que su aplicación web busque aplicaciones en otra ruta que no sea /vobs
.