Create a directory if it doesn't exist in TCL

22,462

You can do this in pure Tcl without 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
Share:
22,462
maihabunash
Author by

maihabunash

I am 17 years old and love to develop

Updated on September 18, 2022

Comments

  • maihabunash
    maihabunash over 1 year

    I write expect script that login to remote machine and run there some scripts But I need also to verify the following

    Verify if directory /var/cti/adm/APP exists.

    If APP not exists under adm directory , then need to create this directory and add ownership to this directory , ( as chown system )

    Please advice how to check if directory exist in expect script and if not need to create this directory

    example of part of my expect script

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

    example how we can do it with bash

     [[ ! -d /.../..../... ]] && mkdir -p xxxxx
    
    • Владислав Щербин
      Владислав Щербин over 9 years
      I'm confused. Just plain mkdir creates a directory if it doesn't exist and does nothing otherwise. You can pass --parents to ensure the whole chain of nested directories exists too. Why do you need a whole script for that?
    • maihabunash
      maihabunash over 9 years
      I cant just send mkdir , because I want to create dir only in case dir not exsits !!!!!!!!!!!!!
    • Владислав Щербин
      Владислав Щербин over 9 years
      That's what I mean. If I run mkdir ~/test and I already have a directory called ~/test, nothing happens. If I don't, it gets created. Did you mean something else?