আমি হোস্টের ফাইলনেমে কোনও নির্দিষ্ট লাইন বিদ্যমান কিনা তা খতিয়ে দেখার চেষ্টা করছি। সুতরাং যদি গ্রেপ কমান্ড থেকে নির্দিষ্ট প্যাটার্নটি পাওয়া যায় তবে একটি ডামি.টিএসটিএসটি তৈরি করা হবে। তারপরে আমি dummy.txt একটি শর্ত হিসাবে উপস্থিত কিনা এবং তা এগিয়ে যেতে চাই exists
তবে যদিও ডামি.এসটিএক্সটি তৈরি হচ্ছে এটি যদি বিবৃতি দ্বারা পাওয়া যায় না:
if {[file exists $fileName] }
এবং নিয়ন্ত্রণটি অন্য ব্লকে স্থানান্তরিত হয়। এর কারণ কী হতে পারে? আমি যা চেষ্টা করছি তা অর্জনের জন্য কি আরও সহজ পদ্ধতি আছে?
set Host [lindex $argv 0 ]
spawn ssh -o StrictHostKeyChecking=no userid@$Host
expect "*assword*"
send "password\n"
expect "+"
send "cd path/that/contains/filename\n"
expect "*$*"
send "pwd\n"
set fileName dummy.txt
send {grep '\[abc\]' filename | wc -l | { read line; [ "$line" != "0" ] && echo "$line"> dummy.txt; }}
send "\n"
expect "+"
send {grep 'xyz' filename | wc -l | { read line; [ "$line" != "0" ] && echo "$line"> dummy.txt; }}
send "\n"
expect "+"
send "chmod 777 dummy.txt\n"
if {[file exists $fileName] } {
send {printf "\nabc xyz already exists"}
send "\n"
expect "+"
send "ls -l\n"
expect "+"
send "rm dummy.txt\n"
expect "+"
send "ls -l\n"
expect "+"
send "exit\n"
} else {
send {printf "cannot find $fileName"}
send "\n"
expect "+"
send {printf "\n[abc]\nxyz\n" >> filename}
send "\n"
expect "+"
send "cat filename\n"
expect "+"
send "exit\n"
}
wc | read ...
আপনি কেবল গ্রেপের রিটার্ন কোডটি পরীক্ষা করতে পারেন (০ টি মিল খুঁজে পাওয়া গেছে, দেখুনman grep
)।