dポイントプレゼントキャンペーン実施中!

expect を使用しているAシェル内で、Bシェルを実行しています。(成功しています。)

が、作成されたファイルのユーザを揃えたいため、
Aシェル内にBシェルの内容を記述したいと思っています。
Aシェルファイルでのfor文の記述と、
変数を受け取る方法がわからないため、エラーになってしまっています。

expect文内のfor文の記述と変数の受け取り方などおしえてください。
よろしくお願いいたします。

------------------Aシェルファイル---------------------
#!/bin/sh
set timeout -1
spawn su - ユーザ名
set prompt ".*ユーザ名.*"
sleep 1
expect "Password:"
send "パスワード\n"
expect -re $prompt
sleep 1
send "/パス/rename.sh\n"
expect -re $prompt
send "echo /var/www/html/パス/tokyo/*/*.jpg | xargs /usr/bin/mogrify -resize 500x -quality 100\n"
expect -re $prompt
send "exit\n"
---------------------------------------

------------------Bシェルファイル---------------------
#!/bin/sh
declare -i i=1
for dirlist in `ls -l /var/www/html/パス/tokyo/ | awk '$1 ~ /d/ {print $9 }' `
do
rm -rf /var/www/html/パス/$dirlist/small
mkdir /var/www/html/パス/$dirlist/small
done
---------------------------------------

A 回答 (1件)

そもそも expect + su でなく、sudo を使うことは検討されましたか?



あと、ファイルA はシェルスクリプトじゃなくて、expectスクリプトのように見えますが。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!