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

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

1
วิธีเชื่อมโยงกลุ่มคำสั่งใน Fish เช่น {…} Bash ได้อย่างไร
ฉันรู้คำสั่งโซ่ปลาผ่าน&&หรือ||แต่ฉันยินดีที่จะห่วงโซ่ชุดของคำสั่งของ รหัส env git clone --depth=1 https://github.com/rafaelrinaldi/theme-pure.git; or { printf "Error: git clone of theme-pure repo failed\n" exit 1 }

1
ฉันจะตรวจสอบว่าไฟล์ใหม่กว่านั้นได้หรือไม่ที่ไฟล์เป้าหมายในเชลล์สคริปต์
ฉันจะตรวจสอบว่าไฟล์ใหม่กว่านั้นเป็นไฟล์เป้าหมายได้อย่างไร ในเชลล์สคริปต์ตั้งใจให้ทำงานบน Mac ฉันต้องการทำสิ่งนี้: #!/bin/bash if [ $SourceFile dateisgreater $TargetFile ] then echo "SourceFile is newer that Targetfile" fi

2
ฉันจะย้ายตารางด้วยค่าคีย์ที่ซ้ำกันได้อย่างไร
ฉันมีตารางที่มีลักษณะดังนี้: Column A | Column B 10 | 0.1 10 | 0.2 10 | 0.3 20 | 0.4 20 | 0.5 20 | 0.6 ฉันต้องเปลี่ยนมันให้เป็นอย่างนี้: 10 | 20 0.1 | 0.4 0.2 | 0.5 0.3 | 0.6 ค่าต่างกันเกือบ 2k ในคอลัมน์ A สำหรับแต่ละค่ามีค่า 1k ในคอลัมน์ B อย่างแน่นอนซึ่งอาจทำซ้ำ มีวิธีอัตโนมัติในการทำเช่นนี้หรือไม่?

1
ฉันจะรันคำสั่งการดู 2 คำพร้อมกันสำหรับ coffeescript ได้อย่างไร
ฉันต้องการเรียกใช้คำสั่งต่อไปนี้พร้อมกับ 1 เชลล์สคริปต์ coffee -wc lib/ coffee -wcb public/ ปัจจุบันฉันต้องกด ctrl + c เพื่อยกเลิกออกจากอันแรกก่อนที่บรรทัดที่สองจะสามารถทำงานได้ ความคิดใด ๆ ที่จะได้รับการชื่นชมอย่างมาก!

1
วิธีดูสองกล่องโต้ตอบบน linux console ทำงานในเวลาเดียวกันได้อย่างไร
ฉันต้องการดูบนหน้าต่างโต้ตอบสองหน้าต่าง Linux ในเวลาเดียวกัน ฉันต้องการหน้าต่างที่ดูแถบความคืบหน้าและกล่องท้ายที่สองที่ดูบันทึกกำลังทำงานอยู่ ปัญหาคือว่ากล่องโต้ตอบปรากฏขึ้นเสมอในใจกลางของคอนโซล สิ่งที่ฉันต้องการคือ เพื่อดูกล่องโต้ตอบสองกล่องในเวลาเดียวกันบนคอนโซล ในขณะที่แถบความคืบหน้าอยู่ด้านบนของหน้าจอ และกล่องควรจะปรากฏในหน้าจอ วิธีการใช้งานนี้ วิธีการวางหน้าต่างข้อความขึ้นหรือลงและไม่ได้อยู่ตรงกลาง dialog --title "RUN TASKS FROM TEXT TABLE" --gauge "Please wait..." 10 70 0 dialog --tailbox file.log 10 100

1
กำลังส่งอีเมลจากสคริปต์ - อีเมลว่างเปล่า
ฉันมีสคริปต์ที่ส่งอีเมลถึงฉันจากเซิร์ฟเวอร์: #!/bin/bash DWATYG=$(date +%d.%m.%Y -d '16 days ago') RAPORT=$(ausearch -i -k RBS -ts $DWATYG) echo "$RAPORT" | mutt -s "Raport RBS" my@email.com สคริปต์นี้เปิดตัวจาก crontab ทุกครั้งที่ฉันได้รับอีเมลเปล่าโดยไม่มีเนื้อหาของข้อความ ถ้าฉันเรียกใช้คำสั่งนี้จากบรรทัดคำสั่งทุกอย่างก็โอเค มีปัญหาอะไร?

1
ไฟล์มีอยู่ไม่ทำงานในสคริปต์ที่คาดหวัง
ฉันพยายามตรวจสอบว่ามีบรรทัดใดบรรทัดหนึ่งอยู่ในชื่อไฟล์ของโฮสต์หรือไม่ ดังนั้นหากพบรูปแบบเฉพาะจากคำสั่ง grep dummy.txt จะถูกสร้างขึ้น จากนั้นฉันต้องการตรวจสอบว่า dummy.txt มีเงื่อนไขและดำเนินการต่อหรือไม่ แต่แม้ว่า dummy.txt จะถูกสร้างขึ้นโดยไม่พบคำสั่ง if: if {[file exists $fileName] } และการควบคุมจะถูกโอนไปยังบล็อกอื่น อะไรคือเหตุผล? มีวิธีใดที่ง่ายกว่าในการบรรลุสิ่งที่ฉันต้องการหรือไม่ set Host [lindex $argv 0 ] spawn ssh -o StrictHostKeyChecking=no userid@$Host expect "*assword*" send "password\n" expect "+" send "cd path/that/contains/filename\n" expect "*$*" send "pwd\n" set fileName dummy.txt send {grep '\[abc\]' …

1
การล้างค่าพารามิเตอร์ URL มวลจากไฟล์ txt
ฉันมีไฟล์พร้อมรายการ URL ดังนี้: www.dell.com/any=abc&anyone=bcd www.google.co.in www.yahoo.com/abc=fgh ฉันต้องการล้างพวกเขาเนื่องจากพวกเขาแสดงเฉพาะข้อมูลที่เท่ากับเครื่องหมายเท่ากัน ตัวอย่างข้างต้นควรเป็น: www.dell.com/any= www.dell.com/any=abc&anyone= www.google.co.in www.yahoo.com/abc= มีคำแนะนำสคริปต์สำหรับการล้างรหัสเช่นนี้ในหลามหรือทุบตี ฯลฯ ?

1
useradd ทำงานได้แบบโต้ตอบ แต่ไม่ใช่สคริปต์ทุบตี
ฉันกำลังพยายามสร้างบัญชีผู้ใช้โดยอัตโนมัติ คำสั่งในสคริปต์นี้ทำงานได้ดีใน bash shell อย่างไรก็ตามเมื่อฉันรัน bash script มันจะล้มเหลวและฉันได้รับ 2 ซึ่งหมายถึง invalid command syntax ตามหน้า man useradd สคริปต์นี้ยังพิมพ์คำสั่งก่อนที่จะดำเนินการดังนั้นถ้าฉันเพียงคัดลอก / วางผลลัพธ์ "cmd-->" ), มันได้ผล. เช่น., cmd-->useradd bidwbre -m -c "Brent Bidwel" -G students นี่คือสคริปต์สั้น ๆ : #!/bin/bash while read id fn ln pw do echo "cmd-->useradd $id -m -c \"$fn $ln\" -G …

2
การทดแทนการขยายตัวรั้ง?
ฉันได้สร้างสคริปต์ทุบตีเล็ก ๆ เพื่อแยกจอภาพสองจอของฉันออกโดยอัตโนมัติด้วย imagemagick เมื่อฉันจับภาพหน้าจอ #! /bin/bash convert "$1" -crop 1024x600+0+0 +repage "${1//.png/}-left.png" convert "$1" -crop 1280x1024+1024+0 +repage "${1//.png/}-right.png" ใช้งานได้ดี แต่จะเปลี่ยนชื่อได้อย่างถูกต้องหากเป็น png (ซึ่งในกรณีนี้ไม่ใช่ปัญหา) อย่างไรก็ตามมีเพื่อให้ทำงานได้ดังนั้นมันจะย้ายนามสกุลไฟล์ไปยังจุดสิ้นสุดหรือไม่ ดังนั้นถ้าฉันเรียกสคริปต์นี้ (เรียกว่าแยกกัน) ในไฟล์ oldscreenshot.jpg มันจะให้ฉัน oldscreenshot-left.jpg และ oldscreenshot-right.jpg?

2
วิธีที่เหมาะที่สุดในการสลับรายการในตัวแปรสภาพแวดล้อม $ PATH คืออะไร
ใน Linux และ / หรือ Mac OSX เป็นวิธีที่ดีที่สุดในการย้ายรายการในตัวแปรสภาพแวดล้อม $ PATH ไปยังด้านหน้าของค่าดังนี้: / foo / บาร์: / หนึ่ง / สอง / สาม / opt / local / bin / home / ผู้ใช้ / bin กลายเป็น / home / ผู้ใช้ / bin: / foo / บาร์: / หนึ่ง / สอง / สาม …

1
สคริปต์ PowerShell ที่จะเรียกโดยเซิร์ฟเวอร์เซิร์ฟเวอร์เพื่อคัดลอกไฟล์บันทึกไปยังสถานที่ห่างไกล
เรามีเซิร์ฟเวอร์หลายตัวที่บันทึกไฟล์บันทึกไว้ในเครื่องและฉันพยายามทำการบันทึกอัตโนมัติไปยังตำแหน่งเครือข่ายเดียวโดยใช้ชื่อโฟลเดอร์หลักที่จัดเก็บไฟล์บันทึกและวันที่แก้ไขเวลา เซิร์ฟเวอร์ 1 D:\Projects\Ohio\(Rel1)\BuildScripts\logs เซิร์ฟเวอร์ 2 D:\Projects\Ohio\(Rel2)\BuildScripts\logs เซิร์ฟเวอร์ 3 D:\Projects\Ohio\(Rel3)\BuildScripts\logs กำลังพยายามคัดลอกบันทึกทั้งหมดไปที่ R:\Logs\CruiseControl\(Rel.AW) \logs+timestamp\logfiles.txt จนถึงตอนนี้ฉันสามารถตั้งค่านี้สำหรับเซิร์ฟเวอร์ 1 ด้วยสคริปต์ด้านล่าง แต่ปัญหาคือต้องเรียกสคริปต์เดียวกันโดยเซิร์ฟเวอร์ 1, เซิร์ฟเวอร์ 2 และเซิร์ฟเวอร์ 3 และแต่ละครั้งที่บันทึกต้องไปที่กระแสที่เฉพาะเจาะจง (Rel1 , Rel2, Rel3) ฉันจะอ้างอิงชื่อสตรีมได้อย่างไร? $logDir = 'D:\Projects\Ohio\Rel.AW\BuildScripts\logs' $copyDir = 'R:\Logs\CruiseControl\Rel.AW' Get-ChildItem $logDir -File | ForEach { $parentFolder = $_.Directory.Name $timeStamp = $_.LastWriteTime.ToString('MMddyyyy') $path = Join-Path -Path …

2
ปัญหาในการใช้งานที่กำหนดเวลาไว้เพื่อรันเชลล์สคริปต์ (Ubuntu Linux)
ฉันกำลังพยายามสร้างงานที่กำหนดเวลาไว้ซึ่งรันเชลล์สคริปต์ซ้ำและฉันมีปัญหาในการทำให้มันทำงานได้ ฉันให้คำสั่งต่อไปนี้เพื่อเรียกใช้ทุกนาที: ~/Desktop/foo/my_script แต่มันไม่เคยวิ่ง (คำสั่งนี้รันเชลล์สคริปต์ผ่านเทอร์มินัลไม่มีปัญหา) ความคิดใด ๆ ที่ฉันทำผิด ขอบคุณ! หมายเหตุ: นี่คือเชลล์สคริปต์ของฉัน: #!/bin/bash sleep 15 date >> output.txt { time ./foo > /dev/null ; } 2>> output.txt และนี่คือสาย cron: * * * * * /home/joe/Desktop/foo/my_script # JOB_ID_3

1
ฉันจะลงทะเบียนไฟล์ด้วยโปรแกรม Redmine ได้อย่างไร
ฉันต้องการเพิ่มไฟล์ลงในเซิร์ฟเวอร์Redmineโดยไม่ต้องผ่านส่วนต่อประสานกราฟิก ฉันกำลังทำให้ไฟล์พร้อมใช้งานกับเซิร์ฟเวอร์ Redmine โดยsvn checkoutกระบวนการแยกต่างหากดังนั้นฉันจึงต้องเพิ่มไฟล์ลงในฐานข้อมูลของ Redmine เอง เป็นการดีที่ฉันต้องการวิธีแก้ปัญหาที่สามารถเรียกใช้เช่นนี้: ./redmine-register-file /path/to/my/file.ext "with optional description" redmine/apps/views/files/new.html.erbผมเชื่อว่าส่วนที่เกี่ยวข้องของอินเตอร์เฟซที่พบใน มันเข้าถึงได้โดยindex.html.erbมีส่วนเล็ก ๆ ที่ฉันเชื่อว่ามีความเกี่ยวข้อง: <div class="contextual"> <%= link_to(l(:label_attachment_new), new_project_file_path(@project), :class => 'icon icon-add') if User.current.allowed_to?(:manage_files, @project) %> </div> นี่คือเนื้อหาที่สมบูรณ์ของnew.html.erb: <h2><%=l(:label_attachment_new)%></h2> <%= error_messages_for 'attachment' %> <%= form_tag(project_files_path(@project), :multipart => true, :class => "tabular") do %> <div class="box"> <% …

2
ค้นหาคำสั่ง shellscript execute สำหรับทุกไฟล์
ฉันพบคำสั่ง "find" เร็วกว่า "Spotlight" ใน mac os x ฉันเห็นภาพผลลัพธ์ด้วย automator โดยไม่มีโชคดังนั้นฉันหวังว่า geeks รอบ ๆ SU จะช่วยแก้ปัญหาเกี่ยวกับสิ่งนั้น shellscript.sh searchphrase ดำเนินการ: สร้างโฟลเดอร์บนเดสก์ท็อป "ผลลัพธ์" หากไม่มี ลบทุกอย่างในโฟลเดอร์นี้ (ผลลัพธ์ใหม่) ก่อนผลสร้าง simlink ขอบคุณ

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