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

Bash เป็นเชลล์ฟรีสำหรับระบบปฏิบัติการยูนิกซ์จากโครงการ GNU

1
Bash script เพื่อทำการแตกไฟล์หลาย ๆ ไฟล์
ฉันมีไฟล์ซิปต่าง ๆ ที่มีโฟลเดอร์ย่อยและไม่มีโฟลเดอร์ย่อย ฉันต้องการแยก zip ทั้งหมดไปยังโฟลเดอร์ของมัน สคริปต์ปัจจุบันของฉันทำสิ่งที่ฉันต้องการหากมีโฟลเดอร์ย่อย อย่างไรก็ตามหากไม่มีโฟลเดอร์ย่อยมันจะแสดงรายการแยกต่างหากในโฟลเดอร์เดียวกันซึ่งจะทำให้เกิดความสับสนเพราะฉันจำเป็นต้องรู้ว่ามันคืออะไร ก่อนทำการคลายซิปโครงสร้างโฟลเดอร์ : JCB-1.zip - JCB - KDY231-8000018 -> file1.txt, file2.txt - KGC30-0152537 -> file1.txt, file2.txt - S330V-0034006 -> file1.txt, file2.txt XZC605-0002319.zip - file_1.txt ,file_2.txt, file_3.txt ZNE10-7845839.zip - ZNE10-7845839 -> file1.txt, file2.txt หลังจากคลายซิปโครงสร้างโฟลเดอร์ : - KDY231-8000018 - KGC30-0152537 - S330V-0034006 - file_1.txt - …
1 bash  unzip 

2
ฉันจะรับฟังก์ชั่น / นามแฝงที่กำหนดในสคริปต์ทุบตีที่ดาวน์โหลดจากเซิร์ฟเวอร์ (และดำเนินการ) เพื่อทำงานได้อย่างไร
ฉันมี.bashrcที่ฉันย้ายไปยังเซิร์ฟเวอร์เพื่อให้ฉันสามารถดาวน์โหลดและรันผ่านwget: wget -O - http://xxx.github.io/dotfiles/bashrc | bash มันได้รับการดำเนินการ แต่ฟังก์ชั่นและนามแฝงใด ๆ ที่กำหนดไว้ในสคริปต์นั้นไม่ทำงาน มีวิธีใดที่จะทำให้ฟังก์ชั่นของฉันถูกกำหนดเหมือนที่มันจะเป็นถ้าสคริปต์นั้นรันในเครื่อง?
1 bash  wget 

1
Watch Filesystem วนซ้ำและรันสคริปต์เมื่อไฟล์ถูกเพิ่มใน Ubuntu?
ปัญหานี้ทำให้ฉันเป็นบ้าจริงๆ สถานการณ์ของฉันคือฉันมีไดเรกทอรีใหญ่บนเซิร์ฟเวอร์อูบุนตูของฉันมีโฟลเดอร์ย่อยประมาณ 150 โฟลเดอร์ที่ฉันต้องดู โฟลเดอร์ย่อยเหล่านั้นส่วนใหญ่มีไฟล์ PDF ซึ่งผู้ใช้สามารถอัปโหลดไฟล์ใหม่ได้ด้วยตนเอง ตอนนี้เมื่อฉันต้องสร้างภาพขนาดย่อของ PDF เหล่านั้นและเนื่องจากฉันไม่สามารถเข้าถึงแหล่งที่มาของเครื่องมือที่ใช้ในการอัปโหลดไฟล์ฉันต้องการตรวจสอบไฟล์ที่เพิ่มใหม่ (ที่ดีที่สุดตามเวลาจริง) และหากมีการเพิ่มไฟล์ใหม่ ต้องการใช้สคริปต์ของฉันเพื่อใช้ ghostscript โดยอัตโนมัติเพื่อสร้างรูปขนาดย่อของฉัน ฉันได้ลองวิธีแก้ปัญหาด้วย incron และอีกอันกับ watcher (ซึ่งไม่ได้ผลเลยเนื่องจาก Ubuntu 10.04) Incron คงจะยอดเยี่ยม แต่ก็ไม่ได้ผลเพราะมันไม่สามารถใช้สำหรับการตรวจสอบระบบไฟล์ซ้ำ ... ฉันจะขอบคุณสำหรับความช่วยเหลือ / คำแนะนำใด ๆ

2
Debian: ฆ่าเซสชันบนหน้าจอผ่านเว็บ
ฉันมีรหัส PHP ที่เป็นดังนี้ (kill.php): <?php echo exec("/home/duke/aa/scripts/test.sh"); ?> test.sh มีลักษณะเช่นนี้: screen -S server -X quit ถ้าฉันเรียกใช้โค้ด php ในเทอร์มินัลphp screen -S server -X quitสคริปต์จะฆ่าเซสชันหน้าจอ อย่างไรก็ตามถ้าฉันชี้เว็บเบราว์เซอร์ของฉันไปที่http: //mywebsite/test.phpมันจะแสดง "ไม่พบเซสชันหน้าจอ" และจะไม่ฆ่าเซสชันของหน้าจอ ฉันจะทำอย่างไรเพื่อให้เว็บเบราว์เซอร์ทำงานได้

2
หมุน Ip ที่ส่งออกใน Postfix สคริปต์ไม่ทำงาน
ฉันพบสิ่งที่ดูเหมือนว่าจะเป็นโค้ดที่ดีในการหมุน postfix IP แต่ฉันไม่สามารถใช้งานได้ เมื่อฉันเรียกใช้ฉันได้รับข้อผิดพลาดนี้: rotate_postfix_ip.sh: 2: Syntax error: "(" unexpected ฉันไม่รู้ว่าจะแก้ไขอย่างไรไม่มีใครช่วยได้ไหม #!/bin/bash ips=("64.250.120.128" "64.250.121.241" "64.250.121.242") length=${#ips[@]} pos=`cat current.txt` oldip=${ips[$pos - 1]} if [ "$length" -eq "$pos" ] ; then echo "limit reached" pos=1 else echo "increment!" (( pos++ )) fi echo "$pos" > current.txt newip=${ips[$pos - 1]} echo "prev: …

1
สคริปต์ไม่ทำงานในการดำเนินการต่อ / ปลุกใน Ubuntu
ฉันมีสคริปต์ชื่อ 999_thaw_flash.sh ในของฉัน /etc/pm/sleep.d สคริปต์ดังต่อไปนี้: - export DISPLAY=:0 #!/bin/bash case "{$1}" in resume|thaw) lynx --dump link1 >> file1 lynx --dump link2 >> file1 lynx --dump link3 >> file1 grep "magnet:?xt=urn:btih:" file1 > file2 sed -i 's/^......//' file2 awk '/org%3A1337%2Fannounce/{print;print "";next}1' file2 >> file3 lines=$(wc -l < file3) echo "no. of …

0
การย้ายชื่อโดเมนจากไฟล์โดยใช้ bash
เรียนรู้การทุบตีในขณะนี้และฉันรู้ว่าเมื่อฉันทำ wget cisco.com ไฟล์ index.html จะปรากฏขึ้น ฉันรู้โดยการตัด index.html | ตัด "/" สิ่งนี้ให้ฉันด้วยเพียงแค่ cisco.com อย่างไรก็ตามจะเกิดอะไรขึ้นถ้าฉันต้องการ cat index.html และลบ cisco.com และมีส่วนที่เหลือของแต่ละ URL เช่น / test / foobar หรือ / example / foobar ฉันจะทำสิ่งนี้ได้อย่างไร ไชโย :)
bash  grep  cut 

0
เชื่อมต่อ Openswan / IPSec VPN ใหม่โดยอัตโนมัติและไม่อนุญาตการรับส่งข้อมูลเป็นระยะ ๆ
ฉันกำลังพยายามเชื่อมต่อเครื่อง Debian สองเครื่องที่ใช้อุโมงค์ Openswan / IPSec นอกจากนี้ฉันต้องการที่จะไม่อนุญาตการจราจรใด ๆ เมื่ออุโมงค์ลง เพื่อจุดประสงค์นั้นฉันได้เขียนสคริปต์ที่มีเส้นทางและส่ง Ping ไปยัง IP ส่วนตัวของเซิร์ฟเวอร์เพื่อให้แน่ใจว่าช่องสัญญาณอยู่ ( สคริปต์ทุบตี ) สิ่งนั้นคือสคริปต์นั้นค่อนข้างน่าเกลียดและไม่สามารถทำงานได้อย่างไร้ที่ติ ฉันหวังว่าจะมีวิธีในตัวเพื่อรักษาและสร้างการเชื่อมต่อ VPN อีกครั้งโดยอัตโนมัติและไม่อนุญาตการรับส่งข้อมูลในขณะเดียวกัน ฉันจะบรรลุสิ่งนี้ได้อย่างไร
bash  debian  ipsec 

1
ย้ายโฟลเดอร์ย่อยไปยังโฟลเดอร์อื่น
ฉันใหม่สำหรับ UNIX และฉันพยายามเขียนเชลล์สคริปต์ที่จะย้ายโฟลเดอร์ทั้งหมดที่เก่ากว่าหนึ่งวันในไดเรกทอรีเก็บถาวรล็อกไปยังโฟลเดอร์อื่น ด้านล่างนี้เป็นคำสั่งที่ฉันใช้เพื่อทำ find /location/logarchive -mtime +1 -type d -exec mv "{}" /Destination/Archives \; คำสั่งนี้กำลังย้ายไดเรกทอรีหลักเช่น logarchive ไปยังปลายทางแทนโฟลเดอร์ย่อย คุณช่วยฉันแก้ไขคำสั่งนี้ได้ไหม
linux  bash  unix 


1
สลับรุ่น Java ชั่วคราวใน bash script- Ubuntu Linux
ฉันใช้ Java keytool เป็นส่วนหนึ่งของสคริปต์ทุบตีที่ใหญ่ขึ้น ฉันต้องส่งรหัสผ่านเพื่อสร้างที่เก็บคีย์ดังนั้นให้ใช้คำสั่ง keytool -importkeystore -deststorepass:file ${somefile}. นี้ -deststorepass:file มีเฉพาะใน Java 7 เท่านั้นตามเอกสาร http://docs.oracle.com/javase/6/docs/technotes/tools/solaris/keytool.html http://docs.oracle.com/javase/7/docs/technotes/tools/solaris/keytool.html ฉันเคยใช้งานสคริปต์มาก่อน แต่ฉันคิดว่าในเครื่องนี้ค่าเริ่มต้นของ Java ต้องเป็น Java 6 และฉันไม่แน่ใจว่าฉันมั่นใจ update-alternatives -config java ถือได้ว่ามีเสถียรภาพ ใครบ้างโปรดทราบวิธีการตั้งค่าเวอร์ชัน Java สำหรับสคริปต์เฉพาะสำหรับสภาพแวดล้อม linux ฉันเห็นสิ่งนี้ แต่ฉันแปลมันเป็น Linux ไม่ได้ สลับระหว่าง Java 7 และ 8 ใน OS X ขอบคุณ!
linux  ubuntu  bash  java 

2
วิธีให้การเข้าถึงสคริปต์อ่านไฟล์ในไดเรกทอรีบน Linux
ฉันสร้างเชลล์สคริปต์ที่ลบรายการที่ซ้ำกันในไดเรกทอรีที่กำหนด มันพิมพ์ "การเข้าถึงถูกปฏิเสธ" ตามด้วยชื่อไฟล์หากไฟล์บางอย่างไม่สามารถอ่านได้ เมื่อฉันพยายามวิ่ง ./filename (ชื่อของไฟล์เชลล์) ภายใต้ไดเรกทอรีที่แน่นอนไฟล์ทั้งหมดจะถูกพิมพ์ออกมาพร้อมกับ "ปฏิเสธการเข้าถึง" ถัดจากมัน ได้รับอนุญาต: drwxr-xr-x . drwx------ 24 .. -rw-r--r-- 1 file1.cpp -rw-r--r-- 1 file2.cpp -rwxr-xr-x 1 file3.cpp -rwxr-xr-x 1 file2.txt -rw-r--r-- 1 script เอาต์พุตเมื่อฉันรันคำสั่ง ./script ภายใต้ไดเรกทอรี: /file1.cpp: permission denied /file2.cpp: permission denied /file3.cpp: permission denied /file2.txt: permission denied /script.sh: permission denied
linux  bash  shell 

1
ที่อยู่ IP ระบุทศนิยมเป็น / 8 หรือ / 16 โดยใช้เครื่องหมาย bash, sed หรือ awk?
ฉันมีไฟล์อินพุตที่มีรายการที่อยู่ ip และ ip_counts (พารามิเตอร์บางตัวที่ฉันใช้ภายใน) ไฟล์มีลักษณะดังนี้ 202.124.127.26 2135869 202.124.127.25 2111217 202.124.127.17 2058082 202.124.127.16 2014958 202.124.127.20 1949323 202.124.127.24 1933773 202.124.127.27 1932076 202.124.127.22 1886466 202.124.127.18 1882955 202.124.127.21 1803528 202.124.127.23 1786348 119.224.129.200 1776592 119.224.129.211 1639325 202.124.127.19 1479198 119.224.129.201 1145426 202.49.175.110 1133354 119.224.129.210 1119525 68.232.45.132 1085491 119.224.129.209 1015078 131.203.3.8 857951 202.162.73.4 817197 207.123.58.125 785326 …

1
การเรียกรายการฟังก์ชั่นที่มีให้ในสตรีม
ฉันกำลังเขียนสคริปต์ทุบตีเพื่อกำหนดค่าเซิร์ฟเวอร์ที่ผู้ใช้จะต้องเลือกการกระทำที่จะดำเนินการและสคริปต์จะดำเนินการ การกระทำแต่ละอย่างจะถูกนำมาใช้เป็นฟังก์ชั่น ฉันพบวิธีแก้ปัญหาเพื่อติดตามการอ้างอิงระหว่างการกระทำเหล่านั้น (โดยใช้ tsort และ แทค ); รายการสั่งซื้อของฟังก์ชั่นที่จะดำเนินการจะถูกส่งไปยัง stdout นี่คือรหัส: # This function accepts the task to be performed as its only argument. # 1) First, check if we have already added the task to the list. If true, # bail out to avoid processing it twice. # 2) …

0
Mac terminal สูญเสียความรู้คอมไพล์
เมื่อฉันเปิดเทอร์มินัลและไปที่ repo คอมไพล์มันจะแสดงสาขาที่ฉันอยู่โดยอัตโนมัติด้วยเช็คสีเขียวขนาดใหญ่หรือ X สีแดงหากฉันมีการเปลี่ยนแปลงใด ๆ ลงชื่อเข้าใช้เครื่องวันนี้และโปรไฟล์ทุบตีของฉันเสียหายอย่างใด ตอนนี้เมื่อฉันไปที่ไดเรกทอรีคอมไพล์สิ่งต่าง ๆ เหมือนที่เคยทำกับโฟลเดอร์อื่น ๆ เช่นชื่อโฟลเดอร์ ฉันเคยติดตั้งแอพ git จาก github.com หรือใช้งาน brew ดังนั้นฉันจึงไม่แน่ใจว่าคุณลักษณะใดที่ฉันทำหายไป ความคิดใด ๆ

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