Score:0

คำสั่ง Bash พร้อมกระแสอาร์กิวเมนต์

ธง in

ฉันมองหาวิธีการจัดเตรียมคำสั่งทุบตีที่มีอาร์กิวเมนต์หลายตัวโดยน้ำตาลไวยากรณ์บางตัวเท่านั้น ฉันรู้ $@ และ $* อยู่แล้ว แต่ฉันไม่รู้วิธีใช้อย่างถูกต้อง มันจะดีกับไวยากรณ์ต่อไปนี้:

กำหนดอาร์กิวเมนต์
คำสั่ง &args

ไวยากรณ์เพิ่มเติมสามารถเป็นดังนี้:

  1. เชื่อมอาร์กิวเมนต์เดี่ยวและสตรีมเข้าด้วยกัน
กำหนด args_stream
คำสั่ง &args_stream arg_1
  1. เชื่อมต่อรายการเดียวและสตรีมอีกทางหนึ่ง
กำหนด args_stream1
กำหนด args_stream2
คำสั่ง &args_stream arg_1 &args_stream2

ดูเหมือนจะเป็นการปฏิบัติที่ไม่ดี แต่ฉันต้องการลดแถวของเชลล์สคริปต์ของฉัน ... :(

อัปเดต ตัวอย่าง: เนื่องจากคำถามกว้างมากจนผู้อ่านไม่สามารถเข้าใจความหมายที่แท้จริงได้ ฉันจึงยกตัวอย่าง:

  1. ของฉัน หัวพิมพ์ การทำงาน มี 7 อาร์กิวเมนต์ แต่ส่วนใหญ่อาจเป็นพารามิเตอร์ ทางเลือกหนึ่งคือตั้งค่าตัวแปรของฉันเป็นพารามิเตอร์เริ่มต้น อย่างไรก็ตาม ฉันจะต้องเรียงลำดับการโต้แย้งในรูปแบบที่ผิดปกติ เพื่อให้อาร์กิวเมนต์หลักเป็นองค์ประกอบที่ถูกต้องที่สุด รูปแบบอื่นคือการเขียนอาร์กิวเมนต์ตามที่ฉันพูดถึง: ฉันต้องการแก้ไขอาร์กิวเมนต์สตรีมหรืออาร์เรย์เหล่านี้ตามที่กล่าวไว้ด้านล่าง:
คำสั่ง $1 [$2.1 $2.2 $2.3] $3 
  1. โดยเรียกใช้คำสั่ง คอมไพล์ - ช่วยเหลือฉันได้รับบันทึกด้านล่าง:

การใช้งาน: git [--version] [--help] [-C <path>] [-c <name>=<value>]
           [--exec-path[=<path>]] [--html-path] [--man-path] [--info-path]
           [-พี | --เลขหน้า | -P | --no-เพจเจอร์] [--no-replace-objects] [--เปลือย]
           [--git-dir=<path>] [--work-tree=<path>] [--namespace=<ชื่อ>]
           <คำสั่ง> [<args>]

อาร์กิวเมนต์ระหว่างวงเล็บเป็นทางเลือก แต่อาจมีเครื่องหมายยัติภังค์คู่ -- สัญกรณ์ เป็นตัวเลือกสำหรับสัญกรณ์สตรีมอาร์กิวเมนต์ของฉัน

David avatar
cn flag
เมื่อฉันอ่านคำถามของคุณ ฉันเห็นว่าไม่มีอะไรเกี่ยวข้องกับอูบุนตู
cn flag
Ray
โดยส่วนตัวแล้วฉันคิดว่าคุณกำลังทำผิด คุณได้ตัดสินใจเลือก `bash` และกำลังถามว่าใครจะทำสิ่งที่คุณแนะนำด้วย `bash` อย่างไร ใช้จุด #2 กับ `git` เป็นตัวอย่าง ฉันไม่คิดว่าตัวเองเป็นผู้เชี่ยวชาญใน `bash` แต่ถ้าฉันต้องทำเช่นนั้น ฉันจะไม่ใช้ `bash` แน่นอน ถ้า `git` เป็นโปรแกรม C++ ฉันจะใช้ [ตัวเลือกโปรแกรม] ของ Boost (https://www.boost.org/doc/libs/1_62_0/doc/html/program_options.html) ฉันไม่ได้บอกว่าคุณทำไม่ได้ด้วย `bash` แต่ฉันไม่คาดหวังว่ามันจะง่าย
Score:1
ธง lc

บางทีคุณกำลังพูดถึง $1, $2และอื่น ๆ ลงในสคริปต์ที่คุณสามารถพูดว่า youtube-dl argument1 อาร์กิวเมนต์ 2.

$ คำสั่ง argument1 argument2

ที่ไหน $1 และ $2 เป็นตัวแทนของข้อโต้แย้งเหล่านั้น

หรือ,

นอกจากนี้ยังมีวิธีอื่นในการทำเช่นนั้น:

คำสั่ง = "ต้นทาง"
คำสั่ง +=" --link2symlink"
คำสั่ง +=" -0"
คำสั่ง +=" -r $folder"

เป็นตัวอย่าง

เนื่องจากคำถามยังไม่ชัดเจนสำหรับฉัน โปรดแจ้งให้เราทราบก่อนเพื่อแก้ไขหรือลบคำตอบนี้อย่างเหมาะสม

Bruno Henrique Peixoto avatar
in flag
ในกรณีที่ต้องการเขียน args [$1 $2] เหมือนในภาษา python แทนที่จะแยก $1 $2
Satoshi Nakamoto avatar
lc flag
ไม่ใช่เพราะในตัวอย่างของฉันเป็นสคริปต์ทุบตี
Bruno Henrique Peixoto avatar
in flag
แต่เป็นไปได้ไหมหรือฉันต้องสรุปไว้ในฟังก์ชันอื่น
Satoshi Nakamoto avatar
lc flag
คำถามของคุณค่อนข้างสับสนและไม่เฉพาะเจาะจง ซึ่งเกิดขึ้นเมื่อเราไม่เข้าใจหัวข้อใดหัวข้อหนึ่งดีพอ ฉันแน่ใจว่าปัญหาของคุณเป็นเรื่องจริง แต่ต้องการทิศทางที่ชัดเจน
Bruno Henrique Peixoto avatar
in flag
ดูเหมือนว่ากรณีของฉันอาจแก้ไขได้ด้วย xargs แต่ฉันขอขอบคุณสำหรับความพยายามในการแก้ปัญหาของฉัน :)

โพสต์คำตอบ

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