คำถามติดแท็ก syntax

ไวยากรณ์หมายถึงกฎของภาษาโปรแกรมซึ่งกำหนดวิธีการจัดเรียงโค้ดเพื่อให้โครงสร้างถูกต้องตามหลักไวยากรณ์และสามารถดำเนินการได้สำเร็จในกรอบของภาษาเหล่านั้น

4
ความแตกต่างระหว่างไวยากรณ์มาตรฐานและไวยากรณ์ BSD คืออะไร?
ฉันได้เห็นคำสั่งมากมายที่ยอมรับ "ไวยากรณ์ BSD" เช่นเดียวกับไวยากรณ์มาตรฐานของพวกเขา ใช้psคำสั่งตัวอย่างหนึ่งตัวอย่าง: To see every process on the system using standard syntax: ps -e ps -ef ps -eF ps -ely To see every process on the system using BSD syntax: ps ax ps axu ดังนั้นความแตกต่างระหว่างสองเส้นทางนี้คืออะไร? โดยทั่วไปเมื่อพวกเขาพูดในรูปแบบ BSD สิ่งที่ฉันควรจำองค์ประกอบ? ไวยากรณ์นี้เป็นเพียงสำหรับคำสั่งเหล่านั้นซึ่งพวกเขาอยู่ใน BSD ด้วยหรือไม่


2
อาร์กิวเมนต์ที่หายไปของ -exec คืออะไร
ฉันใช้คำสั่งต่อไปนี้เพื่อล้างไดเรกทอรีของไฟล์และไดเรกทอรีที่มีอายุมากกว่า 30 วันและย้ายไปยังไดเรกทอรีเก็บถาวรซึ่งฉันสามารถลบได้หลังจากสองสามสัปดาห์หากไม่มีใครขอไฟล์คืน ไดเรกทอรีเป้าหมายมีไดเรกทอรีย่อยตามชื่อผู้ใช้ดังนั้นไดเรกทอรีจะเก็บถาวร นี่คือคำสั่งที่ฉันใช้: find /path/to/directory/username/ -mtime +30 -exec mv "{}" /path/to/archive/username/ \; ผมแนะนำรุ่นล่าสุดนี้จะตอบคำถามเกี่ยวกับการขอให้อูบุนตูผู้ใช้อื่นแก้ไขรหัสเพื่อเปลี่ยนจุดสิ้นสุดของบรรทัด\;สำหรับ+เป็นมันเร็วขึ้น (และอื่น ๆ ถูกต้องหรือไม่) ดูที่นี่ อย่างไรก็ตามการใช้ +วิธีนี้ใช้ได้ถ้า-execคำสั่งนั้นls -lhไม่ใช่ในคำสั่งจริงที่ฉันใช้ ถ้าฉันลองด้วย+ฉันได้รับข้อความแสดงข้อผิดพลาด: find: missing argument to '-exec' ฉันไม่เข้าใจว่าทำไมมันทำงานแบบนี้หรือคำสั่งที่ถูกต้องจะเป็นอย่างไร โปรดอย่าเพิ่งโพสต์การแก้ไขคำสั่งฉันต้องการเข้าใจมากกว่าเพียงแค่ทำตามคำแนะนำอย่างสุ่มสี่สุ่มห้า

6
จุดประสงค์ของ bash Null-operator“:”, เครื่องหมายทวิภาคคืออะไร?
จุดของโอเปอเรเตอร์ "null" ในสคริปต์ BASH คืออะไร ฉันเข้าใจว่ามันถูกใช้เป็นตัวยึดตำแหน่งตามifคำสั่งเมื่อคุณไม่มีอะไรจะพูด แต่ต้องการคำสั่งเพื่อให้โปรแกรมทำงานอย่างถูกต้อง แต่การใช้โดยรวมของมันคืออะไร? คุณจะใช้มันเมื่อไหร่? เมื่อไหร่จึงจะเหมาะสมที่จะใช้มัน?
13 bash  scripts  syntax 

2
สำหรับการวนซ้ำด้วยตัวอักษร
มันทำงานได้อย่างสมบูรณ์บน OSX #!/bin/bash chars=( {a..z} ) n=3 for ((i=0; i<n; i++)) do echo "${chars[i]}" done แต่เมื่อฉันเรียกใช้บน Ubuntu ฉันได้รับข้อผิดพลาดต่อไปนี้ ForLoopAlphabetTest.sh: 2: ForLoopAlphabetTest.sh: Syntax error: "(" unexpected ฉันดูเหมือนจะไม่สามารถแก้ปัญหาได้ ข้อเสนอแนะใด ๆ
12 bash  scripts  syntax 

2
ความหมายของ“ '” (apostrophe) ในคำสั่งเทอร์มินัล
ด้วยเหตุผลแปลก ๆ ฉันลองใช้ '' 'เป็นตัวคั่นคำในตัวระบุเช่นเดียวกับใน: $ export foo'bar=1 > > ^C $ ผลลัพธ์ดังที่แสดงไว้ด้านบนid คือการเปลี่ยนพร้อมท์เป็น ">" และระบบจะรอข้อมูลเพิ่มเติมในส่วนของฉันอย่างชัดเจน อย่างที่คุณเห็นฉันต้อง ctrl-C เพื่อหลบหนี สิ่งเดียวกันเกิดขึ้นโดยใช้คำสั่งอื่นเช่น $ ls foo'bar $ mkdir foo'bar ฉันอยากรู้เกี่ยวกับความรู้สึกทั้งหมดนี้นั่นคือสิ่งที่มีความหมายพิเศษ "" "ในคำสั่งเทอร์มินัล พิเศษ:นอกเหนือจากนี้ฉันยังต้องการทราบชุดอักขระพิเศษหรือไม่ถูกต้องในชื่อไฟล์และโฟลเดอร์ทั้งในระบบ Unix-like และ Windows (เพื่อให้ได้ชุดย่อยทั่วไปของเซฟ) (โดยเฉพาะสิ่งที่เกี่ยวกับทั้งหมด ไม่ใช่ ASCII?) ขอบคุณเดนิส

2
การเปลี่ยนเส้นทางเอาต์พุตคำสั่งโดยใช้ '- <<(…)'
ฉันต้องการที่จะดึงชาซัม ใช้งานได้ แต่ทุกคนสามารถอธิบายได้ว่าทำไม sed 's/^.*= //' -&lt; &lt;(openssl dgst -sha256 filename) ฉันคุ้นเคยกับ$( )โครงสร้าง แต่ไม่สามารถหาเอกสาร&lt;( )ประกอบควบคู่กับ-&lt;ซึ่งฉันคิดว่ากำลังเปลี่ยนเส้นทางไปยังsedSTDIN ฉันรู้ว่ามีวิธีง่ายกว่านี้ แต่สิ่งก่อสร้างนี้ทำให้ฉันหลง
10 bash  redirect  syntax 

5
เหตุใดจึงต้องมีช่องว่างระหว่าง“ [[” และ“ -e xxx” เป็น ksh?
ตัวอย่างเช่นคำสั่งต่อไปนี้ใช้ไม่ได้: if [[-e xyz]]; then echo File exists;fi ksh ให้ข้อผิดพลาดดังต่อไปนี้ [[-e: command not found นั่นเป็นเพราะ "[[-" นั้นคลุมเครือหรือไม่

1
วงเล็บวงเล็บปีกกาใน Bash
ไขปริศนาที่นี่: ถ้าฉันทำ: touch file{1,2,3} มันสร้าง file1, file2, file3 และถ้าเกิดว่าทำ rm file[1-3] มันลบพวกเขา แต่ถ้าฉันทำ touch file[1-3] มันสร้าง: file[1-3] ทำไม?
9 bash  syntax 

1
ฉันจะค้นหาและแก้ไขหลายบรรทัดและแทนที่ด้วย sed บน nginx / sites-available / default
ฉันต้องการยกเลิกการคอมเม้นต์ข้อความที่มีอยู่ในไฟล์เริ่มต้น ไฟล์ในเว็บไซต์นี้คล้ายกับไฟล์เริ่มต้นของฉันมาก https://salsa.debian.org/nginx-team/nginx/blob/master/debian/conf/sites-available/default ความแตกต่างคือเพราะฉันใช้ใบรับรอง https ฉันมีในไฟล์เริ่มต้นส่วนอื่นของเซิร์ฟเวอร์ {} และภายในนั้นฉันมีอีกส่วนหนึ่งของส่วนต่อไปนี้ ... ดังนั้นฉันต้องค้นหาในส่วนเซิร์ฟเวอร์ {} แรกและเพิ่ม info.php ไปยังบรรทัดที่มีลูกศรที่ฉันสร้างขึ้นเพื่อแสดงให้เห็นถึงบรรทัดที่ฉันต้องการเพิ่ม info.php เซิร์ฟเวอร์ { # Add index.php to the list if you are using PHP --&gt; index index.html index.htm index.nginx-debian.html; # pass PHP scripts to FastCGI server # #location ~ \.php$ { #include snippets/fastcgi-php.conf; # # # …
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.