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

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

10
Pseudo-terminal จะไม่ถูกจัดสรรเนื่องจาก stdin ไม่ใช่เทอร์มินัล
ฉันพยายามเขียนเชลล์สคริปต์ที่สร้างบางไดเรกทอรีบนเซิร์ฟเวอร์ระยะไกลแล้วใช้ scp เพื่อคัดลอกไฟล์จากเครื่องท้องถิ่นของฉันไปยังระยะไกล นี่คือสิ่งที่ฉันมี: ssh -t user@server<<EOT DEP_ROOT='/home/matthewr/releases' datestamp=$(date +%Y%m%d%H%M%S) REL_DIR=$DEP_ROOT"/"$datestamp if [ ! -d "$DEP_ROOT" ]; then echo "creating the root directory" mkdir $DEP_ROOT fi mkdir $REL_DIR exit EOT scp ./dir1 user@server:$REL_DIR scp ./dir2 user@server:$REL_DIR เมื่อใดก็ตามที่ฉันเรียกใช้ฉันได้รับข้อความนี้: Pseudo-terminal will not be allocated because stdin is not a terminal. และสคริปต์ก็หยุดตลอดไป กุญแจสาธารณะของฉันเชื่อถือได้บนเซิร์ฟเวอร์และฉันสามารถเรียกใช้คำสั่งทั้งหมดนอกสคริปต์ได้ดี …
345 linux  bash  shell  ssh 

11
วัตถุประสงค์ของ: (โคลอน) GNU Bash builtin คืออะไร
อะไรคือจุดประสงค์ของคำสั่งที่ไม่ทำอะไรเลยแม้แต่น้อยกว่าผู้นำความคิดเห็น แต่จริงๆแล้วคือเชลล์ในตัวและในตัวของมันเอง? มันช้ากว่าการแทรกความคิดเห็นลงในสคริปต์ของคุณประมาณ 40% ต่อการโทรหนึ่งครั้งซึ่งอาจแตกต่างกันอย่างมากขึ้นอยู่กับขนาดของความคิดเห็น สาเหตุที่เป็นไปได้เพียงอย่างเดียวที่ฉันเห็นคือ: # poor man's delay function for ((x=0;x<100000;++x)) ; do : ; done # inserting comments into string of commands command ; command ; : we need a comment in here for some reason ; command # an alias for `true' (lazy programming) while : …
336 bash  shell  built-in 

12
`find -name 'pattern ที่ตรงกับหลาย pattern
ผมพยายามที่จะได้รับรายชื่อของงูหลามและ HTML find Documents -name "*.{py,html}"ไฟล์ทั้งหมดในไดเรกทอรีที่มีคำสั่ง จากนั้นตามมาหน้าคน: การจัดฟันภายในลวดลาย ('{}') ไม่ถือว่าเป็นพิเศษ (นั่นคือ find. -name 'foo {1,2}' ตรงกับไฟล์ชื่อ foo {1,2} ไม่ใช่ไฟล์ foo1 และ foo2 เนื่องจากนี่เป็นส่วนหนึ่งของไปป์ไลน์ฉันต้องการระบุส่วนขยายที่ตรงกับขณะใช้งานจริง (ไม่มีการเข้ารหัส) หากพบว่าไม่สามารถทำเช่นนั้นได้ perl one-liner (หรือคล้ายกัน) ก็น่าจะใช้ได้ แก้ไข: คำตอบที่ฉันพบในท้ายที่สุดรวมถึงอึทุกประเภทและค่อนข้างยาวเช่นกันดังนั้นฉันโพสต์เป็นคำตอบสำหรับคันเดิมที่ฉันพยายามเกา คุณสามารถแฮ็คมันได้ถ้าคุณมีทางออกที่ดีกว่า
335 shell  find 

11
จะตรวจสอบว่าทำงานใน Cygwin, Mac หรือ Linux ได้อย่างไร?
ฉันมีเชลล์สคริปต์ที่ใช้ทั้งบน Windows / Cygwin และ Mac และ Linux มันต้องการตัวแปรที่แตกต่างกันเล็กน้อยสำหรับแต่ละรุ่น สคริปต์ shell / bash ตรวจพบได้อย่างไรว่าทำงานอยู่ใน Cygwin, บน Mac หรือใน Linux?

11
ฉันจะใช้อักขระตัวแทนที่ตรงกันข้ามหรือเชิงลบเมื่อจับคู่รูปแบบในเชลล์ unix / linux ได้อย่างไร
ว่าฉันต้องการคัดลอกเนื้อหาของไดเรกทอรีที่ไม่รวมไฟล์และโฟลเดอร์ที่มีชื่อมีคำว่า 'Music' cp [exclude-matches] *Music* /target_directory สิ่งที่ควรแทนที่ [ไม่รวมการจับคู่] เพื่อทำสิ่งนี้ให้สำเร็จ

2
วิธีสร้างลิงค์ไปยังไดเรกทอรี [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ Stack Overflow ปิดให้บริการใน8 ปีที่ผ่านมา ปรับปรุงคำถามนี้ จะสร้างลิงค์xxxไปได้/home/jake/doc/test/2000/something/อย่างไร? สมมติxxxจะถูกสร้างขึ้นภายใต้และคุณอยู่ในปัจจุบัน/home/jake /home/jakeเมื่อคุณทำคุณโดยตรงไปที่cd xxx/home/jake/doc/test/2000/something/
321 linux  shell  command 

30
วิธีการ urlencode ข้อมูลสำหรับคำสั่ง curl
ฉันพยายามเขียน bash script สำหรับการทดสอบที่รับพารามิเตอร์และส่งผ่านทาง curl ไปยังเว็บไซต์ ฉันจำเป็นต้องเข้ารหัสค่าเพื่อให้แน่ใจว่ามีการประมวลผลอักขระพิเศษอย่างถูกต้อง วิธีที่ดีที่สุดในการทำเช่นนี้คืออะไร? นี่คือสคริปต์พื้นฐานของฉันจนถึง: #!/bin/bash host=${1:?'bad host'} value=$2 shift shift curl -v -d "param=${value}" http://${host}/somepath $@

12
แทนที่ทั้งบรรทัดที่มีสตริงโดยใช้ Sed
ฉันมีไฟล์ข้อความที่มีบรรทัดคล้าย ๆ sometext sometext sometext TEXT_TO_BE_REPLACED sometext sometext sometext ฉันต้องการแทนที่ทั้งบรรทัดด้านบนด้วย This line is removed by the admin. คำค้นหาคือ TEXT_TO_BE_REPLACED ฉันต้องเขียนเชลล์สคริปต์สำหรับสิ่งนี้ ฉันจะใช้สิ่งนี้ได้sedอย่างไร
319 string  shell  sed 

3
การเปลี่ยนเชลล์เริ่มต้นใน Linux [ปิด]
ปิด. คำถามนี้เป็นคำถามปิดหัวข้อ ไม่ยอมรับคำตอบในขณะนี้ ต้องการปรับปรุงคำถามนี้หรือไม่ อัปเดตคำถามเพื่อให้เป็นไปตามหัวข้อสำหรับ Stack Overflow ปิดให้บริการใน7 ปีที่ผ่านมา ปรับปรุงคำถามนี้ เป็นไปได้อย่างไรที่จะเปลี่ยนเปลือกเริ่มต้น envคำสั่งขณะพูดว่า: SHELL=/bin/tcsh และฉันต้องการเปลี่ยนสิ่งนั้นเป็น Bash
317 linux  bash  shell  environment  tcsh 

8
ตรวจสอบขนาดโฟลเดอร์ใน Bash
ฉันพยายามเขียนสคริปต์ที่จะคำนวณขนาดไดเรกทอรีและถ้าขนาดน้อยกว่า 10GB และยิ่งใหญ่กว่านั้น 2GB ดำเนินการบางอย่าง ฉันต้องพูดถึงชื่อโฟลเดอร์ของฉันที่ไหน # 10GB SIZE="1074747474" # check the current size CHECK="`du /data/sflow_log/`" if [ "$CHECK" -gt "$SIZE" ]; then echo "DONE" fi
317 bash  shell  directory 

8
วิธีการแสดงหลายเงื่อนไขในเปลือกถ้าคำสั่ง?
ฉันต้องการเป็นตัวแทนของหลายเงื่อนไขเช่นนี้: if [ ( $g -eq 1 -a "$c" = "123" ) -o ( $g -eq 2 -a "$c" = "456" ) ] then echo abc; else echo efg; fi แต่เมื่อฉันรันสคริปต์มันจะแสดงขึ้น syntax error at line 15: `[' unexpected, เมื่อบรรทัดที่ 15 เป็นบรรทัดที่แสดงว่า .... เกิดอะไรขึ้นกับเงื่อนไขนี้ ()ผมคิดว่าสิ่งที่เป็นธรรมกับ
308 bash  shell  unix 


11
การต่อเชื่อมไฟล์ข้อความหลายไฟล์เป็นไฟล์เดียวใน Bash
วิธีที่เร็วและจริงจังที่สุดในการรวมไฟล์ * .txt ทั้งหมดในไดเรกทอรีเป็นไฟล์ข้อความขนาดใหญ่หนึ่งไฟล์คืออะไร ขณะนี้ฉันใช้ windows กับ cygwin ดังนั้นฉันจึงสามารถเข้าถึง BASH ได้ คำสั่งเชลล์ของ Windows จะดีเช่นกัน แต่ฉันสงสัยว่ามันมีอยู่
305 bash  shell 

7
เน้นรหัสทุบตี / เปลือกใน markdown
วิธีไฮไลต์คำสั่ง bash / shell ในไฟล์ markdown? ตัวอย่างเช่นเพื่อเน้นjsฉันเขียน: ```js function () { return "This code is highlighted as Javascript!"} ``` ```htmlเพื่อเน้นการใช้งาน HTML ฉันรหัส เราจะเน้นคำสั่ง bash / shell ได้อย่างไร

8
ไฟล์ Diff มีอยู่ในสองไดเรกทอรีที่ต่างกัน
ฉันมีสองไดเรกทอรีที่มีรายการไฟล์เหมือนกัน ฉันต้องการเปรียบเทียบไฟล์ทั้งหมดที่มีอยู่ในทั้งสองไดเรกทอรีโดยใช้diffคำสั่ง มีตัวเลือกบรรทัดคำสั่งง่าย ๆ ให้ทำหรือฉันต้องเขียนเชลล์สคริปต์เพื่อรับรายชื่อไฟล์จากนั้นทำซ้ำผ่านพวกเขา?
303 unix  shell  diff 

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