TCL에 디렉터리가 없는 경우 디렉터리를 만듭니다.

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

답변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

소유권도 설정해야 하지만 디렉터리를 생성할 때만 설정하려면 셸을 명시적으로 호출하세요.

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

관련 정보