Score:3

ไม่สามารถเรียกใช้เชลล์สคริปต์โดยดับเบิลคลิกในไฟล์ (Ubuntu 21.10)

ธง in

ก่อนหน้านี้ใน Nautilus ปัญหาได้รับการแก้ไขดังนี้: ฉันจะเรียกใช้สคริปต์ปฏิบัติการใน Nautilus ได้อย่างไร

ตอนนี้ไม่มีส่วนดังกล่าวและ org.gnome.nautilus.executable-text-activation ก็ใช้ไม่ได้เช่นกัน

N0rbert avatar
zw flag
อาจถึงเวลาที่จะลองใช้ Caja หรือ Nemo
Score:2
ธง cn

คำตอบนี้อาจทำให้คุณผิดหวัง แต่นี่คือคำตอบ หลายปีมานี้ นักพัฒนา Nautilus เลิกใช้ตัวเลือกในการเรียกใช้ไฟล์ปฏิบัติการได้ทุกที่โดยดับเบิลคลิก

หนึ่งในอาร์กิวเมนต์คือไฟล์เรียกทำงานต้องได้รับการดูแล ควรดำเนินการโดยผู้ใช้ที่รู้ว่าพวกเขาทำอะไร มิฉะนั้น ควรติดตั้งอย่างถูกต้องในตำแหน่งทั่วไป หากต้องใช้งานโดยผู้ใช้ทั่วไปของระบบ

นักพัฒนาจะทดสอบโปรแกรมปฏิบัติการของเขาจากเทอร์มินัล ผู้ใช้ไม่ควรเผชิญกับความเสี่ยงในการเริ่มต้นกระบวนการที่อาจเป็นอันตรายโดยการดับเบิลคลิกไฟล์ที่ใดที่หนึ่งในระบบไฟล์ของเขา ฉันคิดว่านั่นเป็นข้อพิจารณาที่สำคัญว่าทำไมตัวเลือกนี้จึงเลิกใช้งาน และตอนนี้ด้วย Files 40 ได้ถูกลบออกไปอย่างมีประสิทธิภาพแล้ว

นี่คือวิธีที่คุณควรดำเนินการเกี่ยวกับเรื่องนี้:

โปรแกรมปฏิบัติการสำหรับการใช้งานปกติ

  • วางเชลล์สคริปต์ของคุณในโฟลเดอร์ ~/.local/share/bin หรือ ~/ถังขยะ. โฟลเดอร์ใดๆ ในสองโฟลเดอร์นี้จะรวมอยู่ใน PATH การค้นหาของคุณโดยอัตโนมัติ ซึ่งเป็นตัวแปรที่บอกระบบว่าจะค้นหาไฟล์ปฏิบัติการได้จากที่ใดเมื่อคุณพิมพ์ชื่อที่พรอมต์
  • ดำเนินการ shellscript ของคุณโดยพิมพ์ชื่อในเทอร์มินัลหรือในกล่องโต้ตอบเรียกใช้ (Alt+F2).
  • เลือกที่จะรวมสคริปต์ในภาพรวมแอปพลิเคชันของคุณโดยสร้าง .เดสก์ทอป ตัวเรียกใช้งานสำหรับมันใน ~/.local/share/applications.

การดำเนินการเฉพาะกิจของไฟล์ปฏิบัติการสำหรับผู้ใช้ที่รู้ว่าพวกเขาทำอะไร

สำหรับการทำงานอย่างรวดเร็ว ให้เปิดเทอร์มินัลในไดเร็กทอรีปัจจุบัน ("เปิดเทอร์มินัลที่นี่" ในตัวจัดการไฟล์) และเรียกใช้โดยระบุไดเร็กทอรีปัจจุบัน เช่น

./myscript

ตัวอย่างเช่น ซอฟต์แวร์คอมไพล์ผู้ใช้ขั้นสูงทำสิ่งนี้ตลอดเวลา พวกเขาย้ายไปยังไดเร็กทอรีที่มีสคริปต์การกำหนดค่า และเรียกใช้งานเป็น:

./กำหนดค่า
Score:0
ธง cn

มีวิธีแก้ไขสำหรับสิ่งนี้:

  1. ใน ~/.local/share/applications สร้างสคริปต์ที่จะเรียกใช้พารามิเตอร์ที่ส่งผ่านบรรทัดคำสั่ง:
#!/usr/bin/python3
# -*- การเข้ารหัส: utf-8 -*-
นำเข้าระบบปฏิบัติการ
นำเข้าระบบ
    
ถ้า __name__ == "__main__":
    สำหรับสคริปต์ใน sys.argv[1:]:
        ถ้า os.access (สคริปต์ os.X_OK):
            os.system(ฉ"'{สคริปต์}'")
  1. ใน dir เดียวกัน ให้สร้างไฟล์ .desktop สำหรับสคริปต์:
[รายการเดสก์ท็อป]
Type=ใบสมัคร
เทอร์มินัล = เท็จ
Name=เรียกใช้สคริปต์
Exec=/home/username/.local/share/applications/run_script.py %U
  1. รีสตาร์ท (ในกรณีของฉันจำเป็น) และกำหนด "เรียกใช้สคริปต์" เป็นแอปพลิเคชันเริ่มต้นสำหรับ .sh, .py เป็นต้น

โพสต์คำตอบ

คนส่วนใหญ่ไม่เข้าใจว่าการถามคำถามมากมายจะปลดล็อกการเรียนรู้และปรับปรุงความสัมพันธ์ระหว่างบุคคล ตัวอย่างเช่น ในการศึกษาของ Alison แม้ว่าผู้คนจะจำได้อย่างแม่นยำว่ามีคำถามกี่ข้อที่ถูกถามในการสนทนา แต่พวกเขาไม่เข้าใจความเชื่อมโยงระหว่างคำถามและความชอบ จากการศึกษาทั้ง 4 เรื่องที่ผู้เข้าร่วมมีส่วนร่วมในการสนทนาด้วยตนเองหรืออ่านบันทึกการสนทนาของผู้อื่น ผู้คนมักไม่ตระหนักว่าการถามคำถามจะมีอิทธิพลหรือมีอิทธิพลต่อระดับมิตรภาพระหว่างผู้สนทนา