Score:0

Mysql ในสคริปต์ทุบตี

ธง in

สวัสดี ฉันกำลังเรียกใช้แบบสอบถาม mysql ต่อไปนี้โดยใช้สคริปต์ทุบตี:

#!/bin/bash

set -f # ปิดการใช้งาน globbing
IFS=$'\n' # ตั้งค่าตัวคั่นฟิลด์เป็น NL (เท่านั้น)

arr=($(sudo mysql -u root -h localhost -e "USE mydb;SELECT * FROM sites" | awk 'NR>1'))

เสียงสะท้อน $arr

ซึ่งส่งคืนสิ่งต่อไปนี้:

1 จอน ริชาร์ดส์ [email protected]

จากนั้นฉันพยายามหาชื่อ (Jhon) และเก็บไว้ในตัวแปร ฉันเพิ่มบรรทัดนี้:

ชื่อ = $arr | awk '{พิมพ์ $2}'

อย่างไรก็ตาม ฉันกำลังทำอะไรผิดเพราะฉันพยายามพิมพ์ผลลัพธ์ด้วยบรรทัดต่อไปนี้:

echo $ชื่อ

ที่ไม่ได้พิมพ์อะไร ฉันทำอะไรผิดที่นี่?

in flag
คำถามงี่เง่า แต่ทำไมไม่เขียนแบบสอบถาม SQL ที่ดีกว่านี้ล่ะ หากสิ่งที่คุณต้องการคือค่าของ 'ชื่อแรก' ดังนั้น 'เลือกชื่อจากไซต์' จะระบุสิ่งนี้
jpbrain avatar
ca flag
ถ้าคุณเพิ่งทำ "echo ${arr[1]}" ล่ะ
Terrance avatar
id flag
คำสั่งชื่อของคุณไม่ถูกต้อง คุณจะต้องใช้เป็น echo แทนเหมือนที่คุณมีในคำสั่ง `echo $firstname` ควรเป็น `ชื่อแรก=$(echo $arr | awk '{print $2}')`
Iosef avatar
in flag
matigo: ฉันไม่สามารถทำเช่นนั้นได้เพราะฉันต้องการให้คอลัมน์อื่นเก็บไว้ในตัวแปรด้วย jpbrain: ฉันไม่ได้รับสิ่งที่ต้องการ Terrance: คุณตอบถูกแล้ว
Score:0
ธง id
ชื่อ = $arr | awk '{พิมพ์ $2}'

กำลังพยายามตั้งค่าอยู่ ชื่อจริง ตามคำสั่งของอะไร $arr ถูกตั้งค่าไว้ ดังนั้น มันควรจะผิดพลาดด้วย ไม่พบคำสั่ง.

ถ้าคุณ เสียงสะท้อน $arr เป็นคำสั่งที่สมบูรณ์ จากนั้นคุณสามารถคว้าพารามิเตอร์ตำแหน่งได้ตามต้องการ

firstname=$(echo $arr | awk '{พิมพ์ $2}')

นอกจากนี้ยังมีวิธีอื่นในการรับพารามิเตอร์ตำแหน่ง อย่าลังเลที่จะค้นหาพวกเขา

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา