ก่อนอื่นต้องขออภัยเนื่องจากเมื่อวันศุกร์ที่แล้วฉันไม่สามารถเขียนโพสต์ได้ดังนั้นวันนี้ฉันจะเพิ่มพิเศษเพื่อชดเชยวันที่หายไป 🙂
การขยายตัวของรั้ง
ในภาษาสเปนการขยายคีย์สำหรับฉันดูเหมือนจะเป็นฟังก์ชันที่ได้รับแรงบันดาลใจจาก C เชลล์ซึ่งจะสร้างชุดค่าผสมระหว่างอักขระที่ป้อนภายในวงเล็บปีกกาลำดับที่ใช้คือจากซ้ายไปขวา ไม่ซับซ้อนเลย แต่เป็นตัวเลือกที่จะมีประโยชน์มากในการเยี่ยมชม GNU / Linux ของเรา
ตัวอย่าง:
$ echo a {1,2,3} a1 a2 a3
เมื่อใช้กับลูกน้ำ - สร้างชุดค่าผสมระหว่างค่า a และค่าภายในวงเล็บปีกกา หากไม่มีค่านอกคีย์จะแสดงเพียงครั้งเดียวในแต่ละค่าที่คีย์นั้นมี
$ echo {a, b, c} abc
การใช้งานไม่ซับซ้อนเลยมีตัวอย่างทั่วไปอื่น ๆ เช่นการสร้างไดเรกทอรีจำนวนมากในโฟลเดอร์
$ mkdir ~ / งาน / {หนึ่งสองสามสี่ห้า}
สิ่งนี้จะสร้างโฟลเดอร์ห้าโฟลเดอร์ภายในโฟลเดอร์งานเหมือนกับการป้อนคำสั่งทีละคำสั่ง การสร้างไดเรกทอรี 5 รายการ
มีการขยายตัวสองจุด .. สิ่งนี้จะสร้างชุดของตัวเลขหรืออักขระที่เปลี่ยนจากค่าเริ่มต้นไปยังค่าสุดท้ายอย่าใช้ตัวเลขที่มีตัวอักษร
$ echo {1..5} #Correct 1 2 3 4 5 $ echo {a..f} #Correct abcdf $ echo {a..5} #Incorrect {a..5} # ฉันคิดว่าฉันจะไม่มีทางได้ ใช้กับสีฟ้าในตัวอักษร
เราสามารถประหยัดเวลาได้ด้วยการสร้างวงจร for
# แทนที่จะเขียน $ for ((i = 1; i <= 5; i ++)); ทำ echo "My number $ i"; done My number 1 My number 2 My number 3 My number 4 My number 5 #Save code using brace expand. $ สำหรับฉันใน {1..5}; ทำเสียงสะท้อน "My number $ i; done My number 1 My number 2 My number 3 My number 4 My number 5. 1 My number 5 My number 1 My number 2 My number 3
ฉันคิดว่าคอนเซปต์ชัดเจนแล้วฮ่าฮ่าตอนนี้ฉันจะแสดงความคิดเห็นเพียงว่ามันสามารถใช้ร่วมกันได้และซ้อนกันฉันหมายถึงอะไร?
ด้วย Combinable ที่เราสามารถเข้าร่วมคีย์ได้ตั้งแต่หนึ่งคีย์ขึ้นไป
$ echo {a..c} {1..3} a1 a2 a3 b1 b2 b3 c1 c2 c3
ด้วยการซ้อนกันอย่างที่หลายคนคิดว่าคุณสามารถใช้คีย์การขยายภายในคีย์ส่วนขยายได้
$ echo {a, c {1..3}, d} a c1 c2 c3 d
และสุดท้ายจาก ทุบตีไม่มีอะไร เป็นไปได้ที่จะเพิ่มค่า
$ echo {0..20..2} 0 2 4 6 8 10 12 14 16 18 20
ทั้งหมดนี้สำหรับวันนี้ขอบคุณที่อ่านฉันด้วยคน🙂
พิเศษ
วิธีสร้างถังขยะในเครื่อง
เมื่อฉันพูดว่า ถัง local ฉันหมายถึงไดเร็กทอรีที่เรามีสคริปต์ของเราเองและเป็นไปได้ที่จะเรียกใช้งานเป็นคำสั่งง่ายๆ ...
การบรรลุสิ่งนี้ค่อนข้างง่ายสิ่งแรกที่คุณต้องทำคือสร้างไดเร็กทอรีที่เราจะบันทึกสคริปต์
mkdir ~ / .bin # ในตัวอย่างนี้จะถูกซ่อน
ตอนนี้เรามีโฟลเดอร์ของเราสำหรับบันทึกสคริปต์ แต่จะไม่ทำงานจนกว่าเราจะเพิ่มเส้นทางของ. bin ใหม่เป็น $ PATH
สำหรับไฟล์นี้มีการแก้ไข bash_profileและมีการเพิ่มบรรทัด
ส่งออก PATH = $ PATH: ~ / .bin
และ voila ที่เพียงพอสำหรับการสร้าง local bin แน่นอนว่ามันจะขอสิทธิ์ root ถ้าจำเป็นสำหรับตัวอย่างที่เราเขียนสคริปต์ด่วน
#! / bin / bash echo "สวัสดี $ 1 สบายดีไหม"
บันทึกด้วยชื่อของ สวัสดี
สคริปต์ได้รับอนุญาตให้ดำเนินการและจะเพียงพอที่จะเรียกใช้จากเทอร์มินัลเท่านั้น
$ hello wada # นี่จะแสดงข้อความ Hello wada, how are you?
ดังนั้นด้วยเคล็ดลับด่วนนี้คุณสามารถเรียกใช้สคริปต์ของคุณได้เร็วขึ้น
นั่นคือทั้งหมดสำหรับวันนี้คนที่สบายดี🙂
ปล. ขออภัยในความผิดพลาดถ้ามีตาจะปิดแล้วนะคะ XNUMX 😀
ฉันอยู่ในปัญหาทุบตีมานานแล้วและฉันไม่เข้าใจการขยายวงเล็บปีกกาเหล่านี้ขอบคุณ
บนเคล็ดลับเส้นทางโดยค่าเริ่มต้น Fedora จะทำสิ่งนี้ แต่ใน "~ / .local / bin" ให้ดูตัวอย่างจาก bash_profile ที่ฉันนำมาให้ Jessie
PATH = $ PATH: $ HOME / .local / bin: $ HOME / bin
ส่งออกเส้นทาง
ฉันมีข้อกังวล:
1. ฉันจะให้เขาแบ่งช่วงเวลาสองช่วงด้วยการขยายจุด อายุ {1..24,55..90} และฉันขยายอายุจาก 1 เป็น 24 และต่อด้วย 55 ถึงเก้าสิบ อย่างที่ฉันทำมันไม่ได้ผล ทำไม?
2. ถ้าฉันต้องการให้ค่าแรกเป็นโมฆะและดำเนินการต่อด้วยการกำหนดหมายเลข:
ตกลง: http://manga.favorito /ภาพ http://manga.favorito/imagen1
ฉันลองทำตามวิธีต่อไปนี้ แต่ไม่ได้รับ wget: http://manga.favorito/imagen{, 1..42} ตามฉันฉันจะต้องปล่อยให้ชื่อแรกโดยไม่มีตัวเลขและดำเนินการต่อด้วยการนับจาก 1 ถึง 42 แต่มันไม่เป็นเช่นนั้น ทำไม?
คุณพูดถูกที่บางคนมีหรือมี. bin แต่เพื่อให้ทุกคนเข้าใจและเห็นว่ามันเป็นไปได้ที่จะทำมันในทุก ๆ มิติ: D ขอบคุณที่แวะมา
ดีมากสำหรับการมีส่วนร่วมของความรู้เหล่านี้ต่อโลกของลินุกซ์และความปลอดภัยบางวันศุกร์ฉันหวังว่าฉันจะได้อ่านวิธีฟอร์แมตเพนไดรฟ์ในเทอร์มินัลและเบิร์นอิมเมจ iso DVD / CD ของระบบฟรีใด ๆ ในเทอร์มินัล
ขอบคุณสำหรับคำพูดของคุณพี่ชาย😀ฉันสัญญาว่าวันศุกร์หน้าฉันจะโพสต์นั้น และฉันต้องมีอย่างใดอย่างหนึ่งเกี่ยวกับการปรับแต่ง Vim ฮ่า ๆ ๆ แต่ฉันไม่อยากให้พวกเขาคิดว่ามันจะครอบคลุมแค่ Vim เท่านั้น
บทความเทอร์มินัลที่ยอดเยี่ยมดีที่สุดที่ฉันเคยอ่านมาเป็นเวลานานโดยมีหลายบล็อกที่เผยแพร่แบบฝึกหัดสไตล์นี้ ขอบคุณมาก!!
ขอบคุณมาก😀ฉันจะพยายามทำต่อไป
เคล็ดลับที่ยอดเยี่ยมของถังขยะท้องถิ่น!
ทักทาย!
ยอดเยี่ยมมากเยี่ยมมากที่มีประโยชน์กับคุณขอบคุณมากที่ผ่านพี่ชาย😀
ดีมาก! ไม่มีความคิดเกี่ยวกับเรื่องนี้ ขอบคุณ🙂
ยินดีต้อนรับพี่ชายขอบคุณที่สละเวลาอ่าน😀
ฉันมีข้อกังวล:
1. ฉันจะให้เขาแบ่งช่วงเวลาสองช่วงด้วยการขยายจุด อายุ {1..24,55..90} และฉันขยายอายุจาก 1 เป็น 24 และต่อด้วย 55 ถึงเก้าสิบ อย่างที่ฉันทำมันไม่ได้ผล ทำไม?
2. ถ้าฉันต้องการให้ค่าแรกเป็นโมฆะและดำเนินการต่อด้วยการกำหนดหมายเลข:
ตกลง: http://manga.favorito/imagen http://manga.favorito/imagen1
ฉันลองทำตามวิธีต่อไปนี้ แต่ไม่ได้รับ wget: http://manga.favorito/imagen{, 1..42} ตามฉันฉันจะต้องปล่อยให้ชื่อแรกโดยไม่มีตัวเลขและดำเนินการต่อด้วยการนับจาก 1 ถึง 42 แต่มันไม่เป็นเช่นนั้น ทำไม?
* ขออภัยที่ตั้งกระทู้ครั้งแรกเป็นคำตอบและผิดพลาดในบางส่วน
1.- ตรรกะของคุณผิดคุณต้องรังมันฮ่า ๆ ๆ ลองด้วย
$ echo {{1..24},{55..90}}
2.- เหมือนกับข้อที่แล้ว ...
$ echo "URL"{,{1..42}}
ไม่ต้องกังวลพี่ชายเราอยู่ที่นี่เพื่อช่วยเรา🙂
ในการแทนที่ for ด้วย echo จะมีลักษณะดังนี้
echo "หมายเลขของฉัน" {1..5} $ '\ n' | sed -e: a -e '$! N; s / \ n / \ n /; ta' | sed -e: ก -e '$! N; s / 5 \ n / 5 /; ta'
แต่ฉันชอบ printf
printf "ฉันฉัน% d \ n" {1..5}
และใช้แนวคิดเดียวกันในการขยายคีย์
atte
เจวีเค85321
คุณใส่กล่องขั้วอย่างไร ????
atte
เจวีเค85321
ทดสอบว่าแท็กโค้ดทำงานหรือไม่
ฮิฮิ
ในการแทนที่ for ด้วย echo จะมีลักษณะดังนี้
echo “Mi numero “{1..5}$’\n’ | sed -e :a -e ‘$!N;s/\n /\n/;ta’ | sed -e :a -e ‘$!N;s/5\n/5/;ta’
pero prefiero printf
printf “Mi numero %d\n” {1..5}
และใช้แนวคิดเดียวกันในการขยายคีย์
atte
เจวีเค85321
ฉันเหลือข้อบกพร่องบางอย่าง แต่ก็ใช้งานได้
ฉันยังมีชีวิตอยู่ maluco
ขออภัยที่รบกวน
atte
เจวีเค85321
ฮ่า ๆ ๆ คุณตอบเอง แต่ถ้าอยู่ระหว่างป้าย
ไม่มีช่องว่าง ...
และในการเปลี่ยนท่อไม่จำเป็นต้องทำท่อมากนักฮ่าฮ่าฮ่าพอกับ:
echo -e "Mi numero "{1..5}"\n\b"
พูดตามตรงว่า printf เป็นวิธีที่ดีที่สุดในการพิมพ์ข้อความในสคริปต์มันเป็นแบบพกพามากกว่า แต่โดยทั่วไปแล้วจะใช้เสียงสะท้อน
ฉันใช้ช่องว่าง! XNUMX
มาดูกันเลย😀
เชี่ยมัน "น้อยกว่า" รหัส "มากกว่า" "น้อยกว่า" / รหัส "มากกว่า" ฮ่า ๆ ๆ ๆ
ปัญหาที่ echo -e ไม่ได้มาตรฐานจึงไม่สามารถใช้ได้กับทุกระบบ
ยังออกมายุ่ง
jvk@jvktos:~$ echo -e "Mi numero "{1..5}"\n\b"
Mi numero 1
Mi numero 2
Mi numero 3
Mi numero 4
Mi numero 5
jvk@jvktos:~$
และด้วยสิ่งนี้
jvk@jvktos:~$ echo "Mi numero "{1..5}$'\n' | sed -e :a -e '$!N;s/\n /\n/;ta' | sed -e :a -e '$!N;s/5\n/5/;ta'
Mi numero 1
Mi numero 2
Mi numero 3
Mi numero 4
Mi numero 5
jvk@jvktos:~$
ผมคิดว่าอย่างที่สองให้ผลลัพธ์ที่ดีกว่าฮ่า ๆ ๆ
atte
เจวีเค85321
ป้ายเหล่านี้เป็นคนเกียจคร้านฮิฮิฮิมาดูกันว่าตอนนี้ใช้งานได้หรือไม่
jvk@jvktos:~$ echo -e "Mi numero "{1..5}"\n\b"
Mi numero 1
Mi numero 2
Mi numero 3
Mi numero 4
Mi numero 5
jvk@jvktos:~$
และด้วยสิ่งนี้
jvk@jvktos:~$ echo "Mi numero "{1..5}$'\n' | sed -e :a -e '$!N;s/\n /\n/;ta' | sed -e :a -e '$!N;s/5\n/5/;ta'
Mi numero 1
Mi numero 2
Mi numero 3
Mi numero 4
Mi numero 5
jvk@jvktos:~$
ผมคิดว่าอย่างที่สองให้ผลลัพธ์ที่ดีกว่าฮ่า ๆ ๆ
atte
เจวีเค85321
ยังไงก็เว้นช่องว่างระหว่างบรรทัดนั่นคือเหตุผลว่าทำไมฉันถึงเกลียด html ฮ่า ๆ ๆ ๆ
ยอดเยี่ยม! ปรบมือรัว ๆ เลยค่ะ XNUMX
ฉันไม่รู้ว่าคีย์สามารถซ้อนกันได้เนื่องจากฉันไม่เคยลองใช้เลยมันช่วยประหยัดรหัสได้มากและยังอ่านได้ง่ายกว่าด้วยวิธีนี้ ขอขอบคุณ!
ขอบคุณพี่ชายที่ผ่านมาฉันดีใจที่มันเป็นประโยชน์สำหรับ utilidad
ยินดีต้อนรับเรามาที่นี่เพื่อแบ่งปันและให้ความคิด ฉันไม่รู้ว่าจะเขียนโปรแกรมอย่างไรฉันเพิ่งทำสองสามอย่างใน Bash และฉันได้เผยแพร่สคริปต์บางส่วนที่ฉันทำในสองโพสต์ ฉันคิดว่าการรู้สิ่งนี้สามารถทำให้โค้ดเข้าใจง่ายขึ้น