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

เชลล์สคริปต์เป็นสคริปต์ที่เขียนขึ้นสำหรับเชลล์หรือล่ามบรรทัดคำสั่งของระบบปฏิบัติการ

3
ซิงค์ประสิทธิภาพสูง
ฉันกำลังพยายามทำโฟลเดอร์ซิงค์ p4 / ... มันไม่เร็วมากและใช้ CPU เพียง 2% ฉันไม่พอใจกับการแสดง ฉันพยายามที่จะเขียนฟังก์ชั่นใน bash กำหนดพารามิเตอร์ n มันจะสร้างคิวของไฟล์และโฟลเดอร์ทั้งหมด n ระดับลึกและส้อมกระบวนการ p4 ซิงค์ -f $ thatDirectory / ... หรือ p4 sync -f $ thatFile . ฉันจะเริ่มเกี่ยวกับสิ่งนี้ได้อย่างไร มียูทิลิตี้ใดบ้างที่ทำสิ่งนี้อยู่แล้ว? ขอบคุณล่วงหน้า.

2
Batch Script การต่อเชื่อมไฟล์หลายไฟล์ในหลาย ๆ โฟลเดอร์เป็นไฟล์เดียว
ฉันมีประมาณ 20 โฟลเดอร์และทั้งหมดมีประมาณ 100 csv ไฟล์แต่ละไฟล์ ฉันต้องการรวมทั้งหมดเข้าด้วยกันเป็นไฟล์เดียว ฉันจะทำสิ่งนี้ได้อย่างไร ฉันรู้เกี่ยวกับ copy คำสั่งเพื่อรวมไฟล์ของหนึ่งโฟลเดอร์ ถ้าฉันทำอย่างนั้นฉันจะได้รับ 20 ไฟล์ใน 20 โฟลเดอร์ หากต้องการรวมเข้าด้วยกันฉันจะสำรวจแต่ละโฟลเดอร์และทำอย่างไร ฉันพยายามเขียนชุดสคริปต์เช่นนี้ FOR /D /R %G in ("*") DO ( cd %G COPY *.csv new.csv ) แต่มันทำงานไม่ถูกต้อง ข้อเสนอแนะใด ๆ

1
ฟังก์ชั่นทุบตีกับพารามิเตอร์ที่ไม่สามารถใช้ได้กับ eval ใน Msys2
ฉันใช้ Msys2 จาก PortableApps ภายใต้ Win 10 คำตอบสำหรับคำถามนี้ (เช่นการระบุตัวตนและการแก้ไขปัญหา) อาจเกี่ยวข้องกับส่วนของ Unix / Linux ของการใช้งานหรือ "การปรับตัว" กับ Windows ผ่าน Msys2 ฉันไม่ทราบล่วงหน้า (ไม่เช่นนั้นฉันอาจจะแก้ไขได้ด้วยตัวเอง!) ดังนั้นฉันจึงโพสต์ก่อนหน้า (ลบออกตอนนี้) คำถามที่คล้ายกันในเว็บไซต์ SE อื่น ซึ่งเข้าถึงผู้ชมที่แตกต่างกัน ฉันมีฟังก์ชั่นของเชลล์ที่กำหนดไว้ my_fun.sh เช่น MYAPP=some_executable function myfun() { echo "MYAPP=${MYAPP}" && ${MYAPP} "$@" ; } นั่นคือ some_executable ใช้ตัวเลือกและพารามิเตอร์ ฉันสามารถเรียกใช้ที่บรรทัดคำสั่ง $ some_executable -3 input.dat output.dat …

2
สคริปต์จะไม่หยุดอย่างสมบูรณ์
ฉันเขียนเชลล์สคริปต์ตัวเล็กนี้เพื่อเริ่มต้นเซิร์ฟเวอร์ WSGI ของ gunicorn สำหรับแอพ django ของฉัน ฉันใช้งานบน Ubuntu 12.04 และสคริปต์เริ่มต้นอย่างหมดจดและทำงานเหมือนที่ควรจะเป็น ปัญหาคือสคริปต์และ gunicorn ยังคงทำงานต่อไป Ctrl - C เช่นไม่มีการแจ้งกลับ เหตุใดจึงเป็นเช่นนี้และฉันจะแก้ไขได้อย่างไร สคริปต์: #!/bin/bash NUM_WORKERS=3 cd /path/to/my/project source ../bin/activate gunicorn_django -w $NUM_WORKERS

1
แยกวิเคราะห์ล็อก vsftpd พร้อมเชลล์สคริปต์
ฉันพยายามแยกบรรทัดนี้ด้วย vsftpd: Sun Apr 7 07:23:33 2013 [pid 23590] [cam02430] OK UPLOAD: Client "206.132.183.209", "/20130407/07/20130407_072324D.avi", 496846 bytes, 383.38Kbyte/sec ด้วย: cut -d" " -f9 | sed 's/\[\(.*\)\]/\1/' นี่เป็นการแยกวิเคราะห์ชื่อผู้ใช้สำเร็จซึ่งก็คือ: cam02430 แต่ตอนนี้วันที่มีการเปลี่ยนแปลง: Wed Apr 10 10:37:50 2013 [pid 26137] [cam02299] OK UPLOAD: Client "206.132.183.201", "/20130410/10/20130410_103802D.avi", 496838 bytes, 363.67Kbyte/sec ตอนนี้ฉันจะแยกวิเคราะห์นี้ใช้: cut -d" " -f8 …

2
วิธีรันสคริปต์ของฉันบน VM
ฉันมีสคริปต์บนเครื่องเสมือนของฉันที่ฉันต้องการให้ทำงานโดยไม่ต้อง []$ ./myscript [studentuser@CentosStudentSvr ~]$ myscript -bash: iduser: ไม่พบคำสั่ง ข้อผิดพลาดเป็นอย่างอื่น: -bash: iduser: command not found ฉันจะแก้ไขได้อย่างไร ขอบคุณ

1
รันเชลล์สคริปต์ในเซสชันเทอร์มินัลที่มีอยู่
ฉันกำลังเขียนสคริปต์เพื่อปรับใช้โครงการกับเซิร์ฟเวอร์หลายเครื่อง (9 และกำลังเพิ่มขึ้นเรื่อย ๆ ) ด้วยการบีบอัดการคัดลอกและการเชื่อมต่อระยะไกลสคริปต์จะกลายเป็นค่อนข้างช้าอย่างรวดเร็ว ดังนั้นตอนนี้ฉันกำลังตรวจสอบว่าสคริปต์เรียกผู้ช่วยทำงานผ่านหน้าจอ เวิร์กโฟลว์ในอุดมคติใน pseudocode มีดังนี้: deployment script accept user input for deployment parameters echo "deployment initiated" TTY=`tty` start helper 1 in detached screen, dumped to a temp file exit helper 1 export from SVN compress files upload to temporary directory on live servers swap old …

2
วิธีการแทนที่คำสั่งด้วยผลลัพธ์ของคำสั่งอื่นใน linux?
ฉันต้องการสร้างคำสั่งที่ใช้ผลลัพธ์ของสิ่งอื่นเช่นนี้: JNLP_FILE='find . -name viewerApplet.jnlp' cp ${JAR_FILE} ../../sign-jar/$PROFILE/ แต่ฉันไม่รู้วิธีเรียกใช้งานคำสั่ง find เพื่อใช้สำหรับคำสั่ง 'cp' ความช่วยเหลือใด ๆ

3
ประมวลผลข้อมูลข้อความล้วน
ฉันเป็นไฟล์ข้อความธรรมดาที่ฉันต้องตรวจสอบโดยอัตโนมัติและเขียนผลลัพธ์ในไฟล์ข้อความธรรมดาอีกไฟล์ โปรดทราบว่าฉันจะใช้ข้อความธรรมดาและ CSV แทนกันเนื่องจาก CSV เป็นข้อความธรรมดาที่มีตัวคั่นทั่วไประหว่างข้อมูล (จุลภาคแท็บ ฯลฯ ) ตัวอย่างข้อมูล ABD-01A ABD-01B ABD-01C AL-25A AL-25B ดำเนินการหนึ่ง - จดจำสองส่วนแรกของข้อมูล ( text- number) เพื่อทำซ้ำและนับใน CSV ที่ส่งออก: ABD-01,1 ABD-01,2 ABD-01,3 AL-25,1 AL-25,2 กระบวนการที่สอง - ส่วนแรกของข้อมูลที่รวบรวมไว้ด้านบนมีประเภทของคีย์หลักที่กำหนดให้กับไฟล์อื่น ฉันต้องการรับคีย์หลักที่กล่าวถึงในไฟล์ที่สร้างขึ้นใหม่เช่นกัน: #primary key file 1,ABD-01 2,ABD-02 3,AL-02 20,AL-25 #newly generated file 1,ABD-01,1 1,ABD-01,2 1,ABD-01,3 20,AL-25,1 20,AL-25,2 โดยพื้นฐานแล้วสิ่งที่ฉันถามเธอคือหากมีซอฟต์แวร์ใดที่สามารถช่วยฉันได้ทั้งในระบบปฏิบัติการ Windows …

2
วิธีไพพ์ stdout แบบไบนารีไปยังการเชื่อมต่อ tls ที่บีบอัดได้อย่างไร
เมื่อไม่นานมานี้ฉันสามารถใช้: cat somefile.txt | openssl s_client -connect server:port -quiet -comp อย่างไรก็ตามคำสั่งนี้ใช้งานไม่ได้แม้กับ-ign_eof: $ cat somefile.bmp | openssl s_client -connect server:port -quiet -ign_eof write:errno=32 เพราะ somefile ประกอบด้วยข้อมูลไบนารีบริสุทธิ์(ที่.bmpเป็นรูปแบบเดียวที่ได้รับการยอมรับโดยเซิร์ฟเวอร์และsomefile.bmpจะต้องใช้เวลามากเกินไปที่จะส่งการบีบอัด) ไม่ใช่เพื่อความปลอดภัยเนื่องจากข้อมูลที่ฉันส่งเป็นข้อมูลสาธารณะ แต่ฉันไม่ได้ควบคุมเซิร์ฟเวอร์ที่ไม่อนุญาตการเชื่อมต่อที่ปลอดภัย

1
ฉันจะป้องกันการนอนไม่ให้สับสนได้อย่างไร
ฉันรันสคริปต์สองตัว ทั้งสองเป็นรหัสเดียวกัน แต่พวกเขาต้องทำงาน 5 นาทีเพื่อป้องกันการชนกัน สคริปต์แรก: #! / bin / sh # First run line="Bonus check" stamp=$(date +%Y%m%d-%H%M) # sleep 90s echo "$stamp\t $line" >> /home/rdanner3/Desktop/CardParty.log { export DISPLAY=:0.0 google-chrome [URL masked] } sleep 45s # google-chrome pkill -f chrome # Second run to seventh run identical to above; stripped …

1
เรียกใช้งานเชลล์ย่อย bash และคาดว่าคำสั่ง
จากเชลล์สคริปต์ฉันจะเปิดใช้เชลล์ย่อย bash สำหรับผู้ใช้ & รอให้ผู้ใช้พิมพ์ exit ที่พรอมต์เชลล์ย่อยของ bash ได้อย่างไร ฉันพยายามbash -c expect -c 'expect "exit" {send "Exiting\n"}';แต่มันไม่ทำงาน กรุณาช่วย. ขอบคุณ

2
Bash - เปิดใช้งานการดำเนินการเฉพาะเมื่อสคริปต์ถูกเรียกใช้จากไดเรกทอรีเฉพาะ
ฉันต้องเขียนเชลล์สคริปต์ที่สามารถดำเนินการได้หากรันจากโฮมไดเร็กทอรีของผู้ใช้ที่ลงชื่อเข้าใช้ปัจจุบันและฉันไม่รู้ว่าจะตรวจสอบจากสคริปต์ได้อย่างไร ความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชม.

1
โฟลว์การประมวลผลสคริปต์หยุดทำงานหรือไม่
ตอนนี้สคริปต์ของฉันสามารถเริ่มต้นเซิร์ฟเวอร์ได้ แต่ฉันยังคงมีปัญหาบางอย่างกับสคริปต์ของฉัน เมื่อคำสั่งสตาร์ทเซิร์ฟเวอร์ถูกเรียกใช้งานการควบคุมจะไม่ส่งผ่านสายและไม่ดำเนินการเพิ่มเติมจากบรรทัดนั้น โปรดบอกฉันว่าปัญหาคืออะไรและฉันจะดำเนินการสคริปต์ได้อย่างราบรื่น สคริปต์ของฉัน: SUBIT="su - adminuser -c " SERVER_BOX_COMMAND_A="Server" ############## # Function to start cluster function start(){ $SUBIT "$SERVER_BOX_COMMAND_A" doFurther } doFurther (){ #tasks after server is started } case "$1" in start) start ;; stop) stop ;; restart) $0 stop $0 start ;; *) echo "usage: $0 …

1
พบสคริปต์เพื่อคัดลอกไฟล์ไปยังตำแหน่ง x ของกฎ
ฉันต้องการสร้างสคริปต์อัตโนมัติที่จะถามโฟลเดอร์ที่ระบุและในการเลือกฉันต้องการให้ค้นหาสิ่งต่อไปนี้และทำงาน x หากไฟล์เป็น. mkv และไม่มี "ตัวอย่าง" ในชื่อไฟล์และเป็น <2GB คัดลอกไปยังตำแหน่ง x หากไฟล์เป็น. mkv และไม่มี "ตัวอย่าง" ในชื่อไฟล์และ> คัดลอกไปยังตำแหน่ง 2GB> สำหรับไฟล์ใด ๆ ที่ไม่ตรงตามข้อกำหนดเหล่านี้ควรลบไฟล์พร้อมกับโฟลเดอร์พาเรนต์ที่เลือกไว้

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