การเชื่อมตัวแปรสตริงภายใน a สำหรับลูปในเชลล์ bash [ปิด]


15
#!/bin/bash

names= find /home/devuser -name 'BI*'
echo $names

for name in {names[@]}
do    
 echo $name
 $var = $var$name   
done

echo $var

1
และคำถามของคุณคืออะไร
rzymek

คำตอบ:


17
#!/bin/bash

names= find /home/devuser -name 'BI*'
echo $names

for name in {names[@]}
do    
 echo $name
 var=$var$name //$ should be removed which is prefixed before var. Blank space before and after equal sign should be removed to run this code.   
done

echo $var

1
คุณแน่ใจว่าถูกต้องที่จะใช้ sigil ต่อหน้าชื่อตัวแปรทางด้านซ้ายของการมอบหมายหรือไม่? อย่างไรก็ตามตรวจสอบโพสต์ทั้งหมดของคุณดีกว่าโดยเริ่มจากความคิดเห็นนั้น
จัดการ

ดีกว่า ตอนนี้ความคิดเห็น :) จากนั้นดำเนินการและจับfindผลลัพธ์ของ แล้วตัวแปรอาร์เรย์ในfor's inประโยค
จัดการ

1
var="$(IFS=; echo "${names[*]}")"จุดสุดท้ายอาจจะเป็นไปได้ว่าจะดีกว่าที่จะใช้ไม่มีห่วง: ดังนั้นหากคุณไม่ต้องการสอนเจ้าของคำถามไม่มีประโยชน์มากนักในการแก้ไขข้อผิดพลาดทางไวยากรณ์หลายข้อของเขา
จัดการ

1
คุณลืม$, สำหรับบรรทัดวนรอบควรอ่านfor name in ${names[@]}
bcattle

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.