#!/usr/bin/expect -f
set port [lindex $argv 0]
spawn ps xu | grep "ssh -f -N -o ConnectTimeout=5 -D $port" | grep -v grep | awk '{ print $2 }' | xargs kill -9
expect eol
ฉันแน่ใจว่าพอร์ต 10034 1234 ทำงานอยู่ เพราะฉันตรวจสอบมัน ps aux | grep ssh และดู ดังนั้นในรหัสของฉันคืออะไร ขอบคุณ
                  ฉันไม่รู้มือใหม่ คุณช่วยฉันแก้ไขรหัสได้ไหม
                
                
                  
                    —
                    Edward Tr Edwardng 
                    
                  
                
              
                  เมื่อคุณเรียกใช้สคริปต์มันจะพยายามแทนที่อาร์กิวเมนต์ # 2 เป็น $ 2 อย่างไรก็ตามคุณให้ 1 อาร์กิวเมนต์เท่านั้น ฉันไม่ค่อยเชี่ยวชาญกับคำสั่งเชลล์ แต่ฉันเดาว่าคุณควรหลีกเลี่ยง $ ในสคริปต์ดังนี้: awk '{print \ $ 2}'
                
                
                  
                    —
                    Seyren 
                    
                  
                
              
                  ลองแค่นี้ในไฟล์. sh ของคุณ: spawn ps xu | grep "ssh -f -N -o ConnectTimeout = 5 -D $ 1" | grep -v grep | awk '{print \ $ 2}' | xargs kill -9
                
                
                  
                    —
                    Seyren 
                    
                  
                
              
                  คุณสามารถใช้
                
                  
                    —
                    grawity 
                    
                  
                
              ssh <host> -O exitคุณรู้ว่า ...
                
expect?