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

คำว่า 'เชลล์' หมายถึงคลาสทั่วไปของล่ามคำสั่งแบบโต้ตอบตามข้อความซึ่งส่วนใหญ่มักเกี่ยวข้องกับระบบปฏิบัติการ Unix & Linux สำหรับคำถามเกี่ยวกับการเขียนสคริปต์เชลล์โปรดใช้แท็กเฉพาะเพิ่มเติมเช่น 'bash', 'powershell' หรือ 'ksh' หากไม่มีแท็กเฉพาะควรใช้วิธีแก้ปัญหาแบบพกพา (POSIX-compliant) แม้ว่าจะใช้ 'posix' เพิ่มเติมหรือ 'sh' แทนก็ตาม




11
ฉันจะคัดลอกโฟลเดอร์จากระยะไกลไปยังเครื่องท้องถิ่นโดยใช้ scp ได้อย่างไร [ปิด]
ปิด. คำถามนี้ไม่เป็นไปตามหลักเกณฑ์กองมากเกิน ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ Stack Overflow ปิดให้บริการใน3 ปีที่ผ่านมา ฉันจะคัดลอกโฟลเดอร์จากระยะไกลไปยังโฮสต์ในพื้นที่ได้scpอย่างไร? ฉันใช้sshเพื่อเข้าสู่ระบบเซิร์ฟเวอร์ของฉัน จากนั้นผมอยากจะคัดลอกโฟลเดอร์ระยะไกลเพื่อท้องถิ่นfoo/home/user/Desktop ฉันจะบรรลุสิ่งนี้ได้อย่างไร
2695 shell  command-line  copy  scp 

26
วิธีการตรวจสอบว่าสตริงมีสตริงย่อยใน Bash
ฉันมีสตริงใน Bash: string="My string" ฉันจะทดสอบว่ามันมีสตริงอื่นได้อย่างไร? if [ $string ?? 'foo' ]; then echo "It's there!" fi ??ตัวดำเนินการที่ไม่รู้จักของฉันอยู่ที่ไหน ฉันใช้เสียงสะท้อนgrepหรือไม่? if echo "$string" | grep 'foo'; then echo "It's there!" fi ที่ดูเหมือนเงอะงะเล็กน้อย
2566 string  bash  shell  substring  sh 

17
ในเปลือกหอย“ 2> & 1” หมายถึงอะไร
ในเปลือก Unix ถ้าผมต้องการที่จะรวมstderrและstdoutเข้าสู่stdoutกระแสสำหรับการจัดการต่อไปผมสามารถผนวกต่อไปนี้ในตอนท้ายของคำสั่งของฉัน: 2>&1 ดังนั้นถ้าฉันต้องการใช้headกับผลลัพธ์จากg++ฉันสามารถทำสิ่งนี้: g++ lots_of_errors 2>&1 | head ดังนั้นฉันสามารถเห็นข้อผิดพลาดเพียงสองสามข้อแรกเท่านั้น ฉันมักจะมีปัญหาในการจดจำสิ่งนี้และฉันต้องค้นหามันอย่างต่อเนื่องและส่วนใหญ่เป็นเพราะฉันไม่เข้าใจไวยากรณ์ของเคล็ดลับนี้โดยเฉพาะ คนที่สามารถทำลายนี้และอธิบายทีละอักขระสิ่งที่2>&1 หมายถึง?
2282 bash  shell  unix  redirect 

30
ฉันจะแยกสตริงบนตัวคั่นใน Bash ได้อย่างไร
ฉันมีสตริงนี้เก็บไว้ในตัวแปร: IN="bla@some.com;john@home.com" ตอนนี้ฉันต้องการแยกสตริงด้วย;ตัวคั่นเพื่อให้ฉันมี: ADDR1="bla@some.com" ADDR2="john@home.com" ฉันไม่ต้องการADDR1และADDR2ตัวแปร หากพวกเขาเป็นองค์ประกอบของอาเรย์ที่ดียิ่งขึ้น หลังจากข้อเสนอแนะจากคำตอบด้านล่างฉันลงเอยด้วยสิ่งต่อไปนี้ซึ่งเป็นสิ่งที่ฉันเป็นหลังจาก: #!/usr/bin/env bash IN="bla@some.com;john@home.com" mails=$(echo $IN | tr ";" "\n") for addr in $mails do echo "> [$addr]" done เอาท์พุท: > [bla@some.com] > [john@home.com] มีวิธีการแก้ปัญหาที่เกี่ยวข้องกับการตั้งค่าเป็นInternal_field_separator (ไอเอฟเอ) ;เพื่อ ฉันไม่แน่ใจว่าเกิดอะไรขึ้นกับคำตอบนั้นคุณจะรีเซ็ตอย่างไรIFSกลับเป็นค่าเริ่มต้นได้อย่างไร RE: IFSวิธีแก้ปัญหาฉันลองใช้ดูแล้วมันได้ผลฉันใช้รุ่นเก่าIFSแล้วคืนค่า: IN="bla@some.com;john@home.com" OIFS=$IFS IFS=';' mails2=$IN for x in $mails2 do echo "> [$x]" done …
2041 bash  shell  split  scripting 

15
จะ mkdir ได้อย่างไรถ้าไม่มี dir อยู่?
ฉันกำลังเขียนเชลล์สคริปต์ให้ทำงานภายใต้ KornShell (ksh) บน AIX ฉันต้องการใช้mkdirคำสั่งเพื่อสร้างไดเรกทอรี แต่ไดเรกทอรีอาจมีอยู่แล้วในกรณีนี้ฉันไม่ต้องการทำอะไรเลย ดังนั้นฉันจึงต้องการทดสอบเพื่อดูว่าไม่มีไดเรกทอรีหรือระงับข้อผิดพลาด "มีไฟล์" ที่ผิดพลาดmkdirเมื่อพยายามสร้างไดเรกทอรีที่มีอยู่ มีความคิดเห็นเกี่ยวกับวิธีการที่ดีที่สุดในการทำเช่นนี้?
1987 shell  scripting  ksh  aix  mkdir 

16
ฉันจะค้นหาไฟล์ทั้งหมดในปัจจุบันและโฟลเดอร์ย่อยซ้ำโดยอ้างอิงจากการจับคู่ไวด์การ์ดได้อย่างไร
ฉันจะค้นหาไฟล์ทั้งหมดในปัจจุบันและโฟลเดอร์ย่อยซ้ำโดยอ้างอิงจากการจับคู่ไวด์การ์ดได้อย่างไร
1887 linux  shell 


14
ฉันจะตั้งค่าตัวแปรเป็นผลลัพธ์ของคำสั่งใน Bash ได้อย่างไร
ฉันมีสคริปต์ที่ค่อนข้างง่ายและมีลักษณะดังนี้: #!/bin/bash VAR1="$1" MOREF='sudo run command against $VAR1 | grep name | cut -c7-' echo $MOREF เมื่อฉันเรียกใช้สคริปต์นี้จากบรรทัดคำสั่งและส่งผ่านข้อโต้แย้งฉันไม่ได้รับผลลัพธ์ใด ๆ อย่างไรก็ตามเมื่อฉันรันคำสั่งที่มีอยู่ภายใน$MOREFตัวแปรฉันสามารถรับเอาต์พุตได้ เราจะนำผลลัพธ์ของคำสั่งที่จำเป็นต้องใช้ในสคริปต์บันทึกไปยังตัวแปรแล้วส่งออกตัวแปรนั้นบนหน้าจอได้อย่างไร
1676 bash  shell  command-line 

30
วิธีการนับบรรทัดของรหัสทั้งหมดในไดเรกทอรีซ้ำ?
เรามีแอปพลิเคชั่น PHP และต้องการนับจำนวนบรรทัดทั้งหมดภายใต้ไดเรกทอรีเฉพาะและไดเรกทอรีย่อย เราไม่จำเป็นต้องเพิกเฉยต่อความคิดเห็นเนื่องจากเรากำลังพยายามทำความเข้าใจคร่าวๆ wc -l *.php คำสั่งนั้นใช้งานได้ดีในไดเรกทอรีที่กำหนด แต่ไม่สนใจไดเรกทอรีย่อย ฉันคิดว่ามันอาจใช้งานได้ แต่มันกลับมา 74 ซึ่งไม่ใช่กรณี ... find . -name '*.php' | wc -l ไวยากรณ์ที่ถูกต้องในฟีดคืออะไร?
1623 bash  shell 

30
จะตรวจสอบว่าตัวแปรถูกตั้งค่าใน Bash ได้อย่างไร?
ฉันจะทราบได้อย่างไรว่าตัวแปรถูกตั้งค่าใน Bash หรือไม่ ตัวอย่างเช่นฉันจะตรวจสอบได้อย่างไรว่าผู้ใช้กำหนดพารามิเตอร์แรกให้กับฟังก์ชันหรือไม่ function a { # if $1 is set ? }
1567 bash  shell  variables 

20
ฉันจะวนซ้ำช่วงของตัวเลขที่กำหนดโดยตัวแปรใน Bash ได้อย่างไร
ฉันจะวนซ้ำในช่วงของตัวเลขใน Bash ได้อย่างไรเมื่อช่วงถูกกำหนดโดยตัวแปร ฉันรู้ว่าฉันสามารถทำได้ (เรียกว่า "ลำดับนิพจน์" ในเอกสาร Bash ): for i in {1..5}; do echo $i; done ซึ่งจะช่วยให้: 1 2 3 4 5 แต่ฉันจะแทนที่จุดปลายของช่วงใดช่วงหนึ่งด้วยตัวแปรได้อย่างไร สิ่งนี้ใช้ไม่ได้: END=5 for i in {1..$END}; do echo $i; done สิ่งที่พิมพ์: {} 1..5
1543 bash  shell  for-loop  syntax 

19
วนซ้ำสตริงใน Bash หรือไม่
ฉันต้องการเขียนสคริปต์ที่วนรอบ 15 สาย (อาจเป็นไปได้หรือไม่) เป็นไปได้ไหม สิ่งที่ต้องการ: for databaseName in listOfNames then # Do something end
1501 arrays  bash  shell 

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