Создайте каталог, если он не существует в TCL

Я пишу сценарий ожидания, который заходит на удаленную машину и запускает там несколько скриптов. Но мне нужно также проверить следующие

Проверьте, существует ли каталог /var/cti/adm/APP .

Если APP не существует в каталоге adm , необходимо создать этот каталог и добавить право собственности в этот каталог (как система chown)

Пожалуйста, совет, как проверить, существует ли каталог в сценарии ожиданий, и если не нужно создавать этот каталог

пример части сценария ожидания

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

пример того, как мы можем это сделать с помощью bash

  [[ ! -d /.../..../... ]] && mkdir -p xxxxx 

Вы можете сделать это в чистом Tcl без 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 

Вы можете выполнить команду mkdir как подпроцесс.

 exec mkdir -p -- $directory 

Если вам нужно также установить право собственности, но только при создании каталога, вызовите оболочку явно.

 exec sh -c "if ! [ -d \"\$1\" ]; then mkdir -- \"\$1\" && chown -- bob \"\$1\"; fi" _ $directory