#!/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
?