如果TCL中不存在则创建一个目录

如果TCL中不存在则创建一个目录

我编写了登录远程计算机并运行一些脚本的期望脚本但我还需要验证以下内容

验证目录是否/var/cti/adm/APP存在。

如果目录下不存在APP adm,则需要创建该目录并添加该目录的所有权,(如chown系统)

请建议如何检查expect脚本中是否存在目录,如果不存在则需要创建此目录

我的期望脚本的一部分的示例

 #!/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

答案1

您可以在纯 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

答案2

你可以执行mkdir命令作为子进程。

exec mkdir -p -- $directory

如果您还需要设置所有权,但仅在创建目录时设置,请显式调用 shell。

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

相关内容