Crie um diretório se ele não existir no TCL

5

Eu escrevo espero que o script faça o login na máquina remota e execute alguns scripts Mas também preciso verificar o seguinte

Verifique se o diretório /var/cti/adm/APP existe.

Se o APP não existir no diretório adm , será necessário criar esse diretório e adicionar propriedade a esse diretório (como sistema chown)

Por favor, aconselha como verificar se o diretório existe em esperar script e se não precisar criar este diretório

exemplo de parte do meu script de expectativa

 #!/usr/bin/expect -f
 set multiPrompt {[#>$]}
 send "ssh  $LOGIN3@$IP\r"
 sleep 0.5
       expect  {
       word:  {send $PASS\r ; exp_continue } 
       expect -re $multiPrompt
       }

exemplo, como podemos fazer isso com o bash

 [[ ! -d /.../..../... ]] && mkdir -p xxxxx
    
por maihabunash 02.09.2014 / 15:30

2 respostas

8

Você pode fazer isso em Tcl puro sem exec :

#!/usr/bin/env expect
set path dir1/dir2/dir3
file mkdir $path ;# [file mkdir] in Tcl is like mkdir -p
file attributes $path -owner system
    
por 17.12.2014 / 18:09
0

Você pode executar o mkdir é um subprocesso.

exec mkdir -p -- $directory

Se você precisar definir a propriedade também, mas somente quando o diretório for criado, invoque um shell explicitamente.

exec sh -c "if ! [ -d \"\\" ]; then mkdir -- \"\\" && chown -- bob \"\\"; fi" _ $directory
    
por 03.09.2014 / 01:09