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

6
รันสคริปต์ในเชลล์แบบไม่โต้ตอบหรือไม่
ฉันมีงาน cron ที่ใช้งานสคริปต์ เมื่อฉันรันสคริปต์ผ่านเชลล์แบบโต้ตอบ (ssh'ed to bash) มันใช้งานได้ดี เมื่อสคริปต์รันด้วยตัวเองผ่าน cron สคริปต์จะล้มเหลว ฉันเดาว่ามันใช้ตัวแปรสภาพแวดล้อมบางอย่างที่ตั้งค่าไว้ในเชลล์เชิงโต้ตอบ ฉันจะแก้ไขปัญหาสคริปต์และลบสิ่งเหล่านี้ หลังจากที่ฉันทำการเปลี่ยนแปลงฉันรู้ว่าฉันสามารถจัดคิวสคริปต์ใน cron เพื่อให้มันทำงานได้ตามปกติ แต่มีวิธีที่ฉันสามารถเรียกใช้สคริปต์จากบรรทัดคำสั่ง แต่บอกให้ทำงานตามที่ cron - เช่นในสภาพแวดล้อมที่ไม่โต้ตอบหรือไม่

1
แสดงความคิดเห็นการใช้งานในฟังก์ชั่นที่ตั้งใจจะใช้แบบโต้ตอบ
ฉันมีฟังก์ชั่นจำนวนมากที่กำหนดไว้ใน.bashrcเจตนาของฉันที่จะใช้แบบโต้ตอบในเทอร์มินัล ฉันมักจะนำหน้าพวกเขาด้วยความคิดเห็นที่อธิบายการใช้งานที่ตั้งใจ: # Usage: foo [bar] # Foo's a bar into a baz foo() { ... } นี่เป็นสิ่งที่ดีถ้าเรียกดูซอร์สโค้ด แต่มันก็ดีที่จะรันtypeในเทอร์มินัลเพื่อรับการแจ้งเตือนอย่างรวดเร็วเกี่ยวกับสิ่งที่ฟังก์ชั่นทำ อย่างไรก็ตามสิ่งนี้ (เข้าใจได้) ไม่รวมความคิดเห็น: $ type foo foo is a function foo () { ... } สิ่งใดที่ทำให้ฉันคิดว่า "จะไม่ดีถ้าความคิดเห็นเหล่านี้ยังคงอยู่เพื่อที่typeจะสามารถแสดงได้" และในจิตวิญญาณของงูหลามของdocstringsฉันมาด้วยนี้ foo() { : Usage: foo [bar] : "Foo's a bar into a baz" …

3
จะทำการแทนที่ข้อความในลำดับชั้นของโฟลเดอร์ขนาดใหญ่ได้อย่างไร
ฉันต้องการค้นหาและแทนที่ข้อความในไฟล์จำนวนมากยกเว้นบางกรณี สำหรับแต่ละบรรทัดฉันต้องการให้ฉันถามว่าฉันต้องการแทนที่บรรทัดนั้นหรือไม่ บางสิ่งที่คล้ายกับเสียงเรียกเข้า:%s/from/to/gc(พร้อมกับcเพื่อให้พร้อมรับคำยืนยัน) แต่ข้ามชุดโฟลเดอร์ มีเครื่องมือบรรทัดคำสั่งหรือสคริปต์ที่ดีที่สามารถใช้ได้หรือไม่?

2
วิธีอ่านอินพุตของผู้ใช้เมื่อใช้สคริปต์ในไพพ์
ปัญหาทั่วไป ฉันต้องการเขียนสคริปต์ที่โต้ตอบกับผู้ใช้แม้ว่ามันจะอยู่กลางสายโซ่ของท่อ ตัวอย่างคอนกรีต รูปธรรมก็จะใช้เวลาfileหรือstdinแสดงเส้น (มีหมายเลขบรรทัด) stdoutขอให้ผู้ใช้ป้อนข้อมูลการเลือกหรือสายตัวเลขและจากนั้นพิมพ์เส้นที่สอดคล้องกับ มาเรียกสคริปต์นี้selectorกัน ถ้าอย่างนั้นฉันก็อยากจะทำ grep abc foo | selector > myfile.tmp ถ้าfooมี blabcbla foo abc bar quux xyzzy abc จากนั้นselectorนำเสนอตัวเลือก (บนเทอร์มินัลไม่ใช่ในmyfile.tmp!) 1) blabcbla 2) foo abc bar 3) xyzzy abc Select options: หลังจากนั้นฉันพิมพ์ 2-3 และจบลงด้วย foo abc bar xyzzy abc myfile.tmpเป็นเนื้อหาของ ฉันมีสคริปต์ตัวเลือกทำงานอยู่และโดยพื้นฐานแล้วมันจะทำงานได้อย่างสมบูรณ์แบบหากฉันไม่เปลี่ยนเส้นทางอินพุตและเอาต์พุต ดังนั้น selector foo ทำงานเหมือนที่ฉันต้องการ …

8
ฉันจะปิดการใช้งานคุณสมบัติประวัติใหม่ใน Python 3.4 ได้อย่างไร
ตั้งแต่การอัพเกรดเป็นงูหลาม 3.4 ~/.python_historyคำสั่งแบบโต้ตอบทั้งหมดจะถูกบันทึกลงใน ฉันไม่ต้องการให้ Python สร้างหรือเขียนไฟล์นี้ การสร้าง symlink /dev/nullไม่ทำงาน Python จะลบไฟล์และสร้างใหม่ เอกสารแนะนำให้ลบsys.__interactivehook__แต่ยังเอาแท็บเสร็จ สิ่งที่ควรทำเพื่อปิดใช้งานการเขียนไฟล์ประวัตินี้ แต่ยังคงรักษาความสมบูรณ์ของแท็บไว้ รายละเอียดเพิ่มเติม: Distro: Arch Linux x86_64 readline 6.3-3 หลาม 3.4.0-2

3
เรียกใช้คำสั่ง / สคริปต์ที่ตัดการเชื่อมต่อจากเทอร์มินัลการควบคุมหรือไม่?
ฉันกำลังตรวจสอบพฤติกรรมของสคริปต์ที่ปกติแล้วจะทำงานเป็นกระบวนการอัตโนมัติ (เช่น cron, Jenkins) สคริปต์สามารถ (ในที่สุด) เรียกใช้คำสั่งที่ทำงานแตกต่างกัน (ค้นหาอินพุตผู้ใช้) เมื่อรันแบบโต้ตอบ; ตัวอย่างเช่นpatchจะถามว่าจะทำอย่างไรกับแพทช์ที่กลับด้านและsvnจะขอรหัสผ่าน แต่ฉันต้องดูว่าจะเกิดอะไรขึ้นเมื่อพวกเขาทำงานแบบไม่โต้ตอบ การโน้มน้าวใจpatchว่าการไม่โต้ตอบนั้นค่อนข้างง่าย ฉันแค่ต้องการเปลี่ยนเส้นทางstdoutให้เป็นคนที่ไม่ใช่ tty: $ </dev/null > >(cat) /path/to/myscript --args อย่างไรก็ตามsvnจะเชื่อมต่อกับเทอร์มินัลการควบคุมหากมีอยู่ การแก้ไขสคริปต์เพื่อส่งผ่าน--non-interactiveไม่ใช่ตัวเลือกจริงๆเนื่องจากนี่มาจากหลายระดับลึกและมันยากที่จะแน่ใจว่าฉันได้พบการเรียกใช้ทุกครั้ง มีวิธีการเรียกใช้สคริปต์ / คำสั่งแบบไม่โต้ตอบโดยไม่มีสถานีควบคุม (เพื่อที่/dev/ttyไม่มีอยู่)? ฉันต้องการ stdout / stderr ยังคงไปที่สถานีของฉัน (ฉันพบคำถามเรียกใช้สคริปต์ในเชลล์แบบไม่โต้ตอบแต่คำตอบสำหรับเรื่องความแตกต่างระหว่าง cron และสภาพแวดล้อมของผู้ใช้; ฉันได้กำจัดความแตกต่างทั้งหมดยกเว้นการไม่โต้ตอบ)
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.