ฉันต้องการสร้างคำสั่งที่ใช้ผลลัพธ์ของสิ่งอื่นเช่นนี้:
JNLP_FILE='find . -name viewerApplet.jnlp'
cp ${JAR_FILE} ../../sign-jar/$PROFILE/
แต่ฉันไม่รู้วิธีเรียกใช้งานคำสั่ง find เพื่อใช้สำหรับคำสั่ง 'cp'
ความช่วยเหลือใด ๆ
ฉันต้องการสร้างคำสั่งที่ใช้ผลลัพธ์ของสิ่งอื่นเช่นนี้:
JNLP_FILE='find . -name viewerApplet.jnlp'
cp ${JAR_FILE} ../../sign-jar/$PROFILE/
แต่ฉันไม่รู้วิธีเรียกใช้งานคำสั่ง find เพื่อใช้สำหรับคำสั่ง 'cp'
ความช่วยเหลือใด ๆ
คำตอบ:
คุณสามารถใช้สัญลักษณ์ดอลลาร์ตามด้วยคำสั่งในวงเล็บ [ $(<command>)
] เพื่อให้เอาต์พุตของคำสั่งนั้นถูกป้อนเข้าสู่บรรทัดรับคำสั่งโดยตรง:
cp $ (ค้นหา. -name viewerApplet.jnlp) ../../sign-jar/$PROFILE/
cp `หา -name viewerApplet.jnlp` ../../sign-jar/$PROFILE/
find . -name viewerApplet.jnlp -exec cp {} ../../sign-jar/$PROFILE/ \;
-exec ให้คุณป้อนผลลัพธ์การค้นหาไปยังคำสั่งอื่น {} ย่อมาจากชื่อของไฟล์ที่พบ โปรดทราบว่าหากพบว่ามีมากกว่าหนึ่งผลมันจะคัดลอกทั้งหมดลงในไดเรกทอรีที่ระบุ (สมมุติว่าคุณมีไฟล์เพียง 1 ไฟล์ที่เรียกว่า viewerApplet.jnlp แต่ exec ก็ทำงานได้เหมือนกันfind . -name *.java -exec cp {} backups/ \;
)
$(command substitution)
ไวยากรณ์เป็นที่ต้องการโดยทั่วไปมากกว่า backticks วันนี้