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

เชลล์เป็นอินเตอร์เฟสบรรทัดคำสั่งของ Unix คุณสามารถพิมพ์คำสั่งในเชลล์แบบโต้ตอบหรือเขียนสคริปต์เพื่อทำงานอัตโนมัติ ใช้แท็กนี้สำหรับคำถามที่ใช้กับ / bin / sh และเชลล์ที่เข้ากันได้มากที่สุด (ash, bash, ksh, zsh, …) สำหรับเชลล์สคริปต์ที่มีข้อผิดพลาดโปรดตรวจสอบใน http://shellcheck.net ก่อนโพสต์ที่นี่

2
GLOBIGNORE ทำงานอย่างไร
ตามหน้าคู่มือของ bash: GLOBIGNORE A colon-separated list of patterns defining the set of filenames to be ignored by pathname expansion. If a filename matched by a pathname expansion pattern also matches one of the patterns in GLOBIGNORE, it is removed from the list of matches. อย่างไรก็ตามในทางปฏิบัติ ... $ bash --noprofile --norc …

4
Ctrl-C พร้อมกับสองคำสั่งพร้อมกันในทุบตี
ฉันต้องการเรียกใช้สองคำสั่งพร้อมกันในทุบตีบนเครื่อง Linux ดังนั้นใน./execute.shทุบตีสคริปต์ของฉันฉันใส่: command 1 & command 2 echo "done" อย่างไรก็ตามเมื่อฉันต้องการหยุดสคริปต์ทุบตีและกดCtrl+ Cเฉพาะคำสั่งที่สองเท่านั้นที่หยุด คำสั่งแรกยังคงทำงานอยู่ ฉันจะแน่ใจได้อย่างไรว่าสคริปต์ทุบตีสมบูรณ์หยุดทำงาน หรือไม่ว่าในกรณีใดฉันจะหยุดคำสั่งทั้งสองได้อย่างไร เพราะในกรณีนี้ไม่ว่าฉันจะกดCtrl+ Cคำสั่งที่ทำงานต่อไปบ่อยแค่ไหนและฉันก็ถูกบังคับให้ปิดเทอร์มินัล

3
Shell Script - ข้อผิดพลาดทางไวยากรณ์ใกล้โทเค็น `else 'ที่ไม่คาดคิด
ด้วยเชลล์สคริปต์ต่อไปนี้ทำไมฉันถึงได้รับข้อผิดพลาด syntax error near unexpected token `else' เชลล์สคริปต์ echo "please enter username" read user_name echo "please enter password" read -s pass echo ${ORACLE_SID} SID=${ORACLE_SID} if ["${ORACLE_SID}" != 'Test'] then sqlplus -s -l $USER_NAME/$PASS@$SID <<EOF copy from scott/tiger@orcl insert EMP using select * from EMP exit EOF else echo "Cannot copy" …

3
ฉันจะจัดการข้อมูลไบนารีดิบในท่อทุบตีได้อย่างไร
ฉันมีฟังก์ชั่นทุบตีที่ใช้ไฟล์เป็นพารามิเตอร์ตรวจสอบไฟล์ที่มีอยู่แล้วเขียนสิ่งที่มาจาก stdin ไปยังไฟล์ โซลูชันไร้เดียงสาทำงานได้ดีสำหรับข้อความ แต่ฉันมีปัญหากับข้อมูลไบนารีโดยพลการ echo -n '' >| "$file" #Truncate the file while read lines do # Is there a better way to do this? I would like one... echo $lines >> "$file" done
15 bash  shell  binary 

2
ส่งผ่านพารามิเตอร์บรรทัดคำสั่งไปยังโปรแกรมภายในเชลล์สคริปต์
ในฐานะที่เป็น./script.sh arg1 [arg2 arg3 ...]ข้อโต้แย้งบรรทัดคำสั่งarg1, arg2... สามารถได้โดย$1, $2... แต่จำนวนของการขัดแย้งจะไม่ได้รับการแก้ไข ในเชลล์สคริปต์ฉันต้องการส่งอาร์กิวเมนต์ที่เริ่มต้นจากarg2ไปยังโปรแกรม #/bin/bash ... /path/to/a/program [I want to pass arg2 arg3 ... to the program] ... ฉันจะทำอย่างไรเพราะอาจมีข้อโต้แย้งอย่างน้อยหนึ่งข้อ

5
สร้างดัชนีสตริงใน bash
ฉันจะอ้างถึงสตริงตามดัชนีใน sh / bash ได้อย่างไร? นั่นคือโดยทั่วไปมันแยก ฉันพยายามตัดชื่อไฟล์ 5 ตัวอักษร ชื่อทั้งหมดมีโครงสร้าง: name_nr_code ฉันกำลังพยายามลบบิตรหัสตัวอักษรและตัวเลข 5 ตัว name_nr_มีความยาว 10 อักขระเสมอ มีสิ่งที่ชอบ; for i in * ; do mv "$i" "$i"[:10] ; done
15 bash  shell  string 

2
ฉันจะเรียงลำดับโดยใช้คำสั่ง grep และ sort ได้อย่างไร
ผมอยากจะสร้างรายการที่เรียงลำดับของการบริการที่เป็น TCP ทั้งหมดที่พบในไฟล์/etc/services, ท่อส่งออกของคำสั่งgrep tcp /etc/servicesลงไปในคำสั่งแล้วเปลี่ยนเส้นทางออกของท่อนี้ลงในแฟ้มsort~/pipelab.txt ฉันได้รับข้อความแสดงข้อผิดพลาดว่าผลลัพธ์ของฉันไม่ถูกต้องและฉันไม่รู้ว่าทำไม นี่คือสิ่งที่ฉันได้ลองครั้งล่าสุด: grep tcp /etc/services > ~/pipelab.txt | sort
15 shell  pipe 


1
แสดงข้อความเมื่อ cd ลงในไดเรกทอรีเฉพาะ
ฉันจะแสดงข้อความเมื่อฉันcdไปยังไดเรกทอรีที่ต้องการได้อย่างไร ไดเรกทอรีนี้เป็นไดเรกทอรีท้องถิ่นและฉันต้องการการแจ้งเตือนเมื่อฉันเข้าไปในเทอร์มินัล
15 shell  cd-command 

6
ต่อท้ายข้อความด้วย echo โดยไม่มีบรรทัดใหม่
echo "abc" >>file.txtฉันต้องการที่จะเพิ่มข้อความลงในไฟล์เช่น แต่นี่เพิ่มabcหลังจากบรรทัดใหม่ ฉันจะเพิ่มabcท้ายไฟล์ด้วย echo โดยไม่มีบรรทัดใหม่ได้อย่างไร

2
ย้ายไฟล์ของรูปแบบเฉพาะไปยังไดเรกทอรีอื่น
ในไดเรกทอรี/home/inฉันมีไฟล์เช่นนี้: crust.MC12345.txt crust.etcMC12345.txt crust.MC23456.txt crust.etcMC23456.txt crust.etctcMC23456.txt ฉันต้องการย้ายcrust.etcMC12345.txtและcrust.etcMC23456.txtไปยัง dir อื่นเท่านั้น. /home/outรูปแบบที่ฉันใช้ในคำสั่ง mv สำหรับสถานการณ์ด้านบนคืออะไร?
15 shell  wildcards  mv 


3
ความแตกต่างระหว่าง ping -w และ ping -W คืออะไร
อะไรคือสิ่งที่-w(กำหนดเส้นตาย) ธงในpingหา? ฉันไม่พบคำอธิบายในpingหน้า man; ใช้สำหรับ-Wพารามิเตอร์วินาทีเท่านั้น อะไรคือความแตกต่างระหว่างพวกเขาและฉันจะตั้งค่าการหมดเวลา ping (ถ้าโฮสต์ไม่ตอบสนอง) ถึง 200ms อย่างไร
15 shell  ping  timeout 

2
ฉันจะป้องกันการขยาย Bash จากการส่งไฟล์ที่ขึ้นต้นด้วย“ -” เป็นอาร์กิวเมนต์ได้อย่างไร
ฉันพยายามค้นหาสตริงซ้ำด้วยซ้ำgrepแต่ฉันได้รับสิ่งนี้: $ grep -r "stuff" * grep: unrecognized option '---corporate-discount.csv' Usage: grep [OPTION]... PATTERN [FILE]... Try 'grep --help' for more information. ฉันจะป้องกัน Bash ไม่ให้ส่งไฟล์ที่ขึ้นต้นด้วย-อาร์กิวเมนต์ได้อย่างไร
14 shell  grep 

1
ฉันสามารถจัดกลุ่มตามหมวดหมู่ได้หรือไม่?
ฉันมีไดเรกทอรีพร้อมรูปภาพจำนวนมากในนั้น โดยเฉพาะdu -sh --apparent-size /path/to/myfolder331G ให้ฉัน อันไหนดี แต่ตอนนี้ฉันต้องการได้รายชื่อที่จัดกลุ่มตามเดือนเช่นบางสิ่งเช่นนี้: 2016-01 20MB 2016-02 520MB 2016-03 312MB ... มีวิธี (สมเหตุสมผล) ในการทำเช่นนี้กับ linux builtins หรือฉันควรเขียนยูทิลิตี้ Python ของตัวเองเพื่อทำมัน?

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