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

関連情報