ฉันจะเริ่มต้นแอปพลิเคชันของฉันในวิธีที่สะดวกกว่าได้อย่างไร


9

ฉันใหม่ใน Ubuntu ฉันมีแอปพลิเคชั่นที่ฉันเปิดด้วยวิธีต่อไปนี้ ฉันพิมพ์ในคอนโซล:

cd ~/MyDirectory
./myapp +some arguments

ฉันจะหาวิธีแก้ไขได้อย่างไรฉันจึงสามารถเปิดใช้งานแอปพลิเคชันของฉันได้โดยไม่ต้องพิมพ์คำสั่งเหล่านี้ในคอนโซลทุกครั้ง ฉันกำลังคิดถึงสคริปต์เช่น bat-script หรือ .lnk ใน windows

ในคำถามที่คล้ายกันอื่น ๆ ฉันไม่พบวิธีแก้ปัญหาเพราะมีเพียงบางคนกล่าวถึงและอภิปรายถึงการเขียนสคริปต์ ฉันไม่พบวิธีที่ฉันสามารถใช้คำสั่ง "cd" ในคำถามอื่นและคำถามนี้ไม่ซ้ำกับที่ฉันแนะนำ


@steeldriver ไม่ฉันไม่พบวิธีแก้ปัญหาสำหรับคำถามนี้ ไม่มีอะไรเกี่ยวกับคำสั่ง cd และการเรียกใช้แอปผ่านสคริปต์
nick

# 1 คุณต้องการให้โซลูชันเป็นไอคอนที่คุณสามารถคลิกบนเดสก์ท็อปของคุณหรือจะเป็นสิ่งที่คุณต้องการ / ต้องการเรียกใช้จากพรอมต์คำสั่งหรือไม่ # 2 การโต้แย้งจะเปลี่ยนบ่อยแค่ไหน?
RonJohn

บทสนทนา (ในกรณีนี้อย่างปลอดภัย) ถือว่ามีเดสก์ท็อป บ่อยครั้งในโลกแห่งสคริปต์จะไม่มี
mckenzm

คำตอบ:


21

สคริปต์ค่อนข้าง overkill

ใช้ไฟล์ .desktop เช่น:

[Desktop Entry]
Exec=/bin/bash -c "cd ~/MyDirectory && myapp some_arguments"
Name=Some App
Type=Application
  • บันทึกเป็น some_app.desktop
  • ทำให้ปฏิบัติการและดับเบิลคลิก

NB

คำถามคือถ้าจะต้องเรียกใช้จากไดเรกทอรีของตนเองหรือไม่ หากไม่เป็นเช่นนั้นคำสั่งอาจง่ายขึ้น:

Exec='/home/MyUserName/MyDirectory/myapp' some_arguments

2
ขอบคุณจริงๆ. .desktopไฟล์เพียงพอสำหรับงานนี้
nick

2
@allo หาก OP ขอวิธีแก้ปัญหาซึ่งไม่ใช่วิธีที่ดีที่สุดสำหรับปัญหาของเขา แต่เขาไม่รู้ว่ามีสิ่งใดดีกว่าอยู่คุณควรให้ทางออกที่ดีกว่าแก่เขาหากคุณรู้จัก หากคุณไม่เห็นว่าคุณค่อนข้างพลาดประเด็นที่ควรให้คำตอบที่นี่
Jacob Vlijm

1
@dessert ขอบคุณสำหรับการแก้ไข เราอาจจะต้องจัดการกับเส้นทางที่มีช่องว่าง :)
จาค็อบ Vlijm

1
คุณอาจต้องการเขียน./myapp …แทนเพียงmyapp …เพราะไดเรกทอรีปัจจุบัน.โดยค่าเริ่มต้นไม่ได้เป็นส่วนหนึ่งของตัวแปร PATH
PerlDuck

1
@allo โปรดเพิ่มคำตอบของคุณเองหากคุณคิดว่าคำตอบที่มีอยู่ไม่เพียงพอ
Fabby

13

สร้างไฟล์ที่มีเนื้อหาดังต่อไปนี้:

#!/bin/bash
cd ~/MyDirectory
./myapp +some arguments

จากนั้นทำให้ปฏิบัติได้:

chmod u+x scriptname

ตอนนี้คุณสามารถเรียกใช้สคริปต์นี้ดังนี้: /pathtoscript/scriptname

คุณสามารถรวมสิ่งนี้กับคำตอบโดย v010dya และวางสคริปต์นี้ในสิ่งbinที่อยู่ใน $ PATH ดังนั้นวิธีการโทรทั้งสองวิธีจึงเป็นไปได้: ในเชลล์ในไดเรกทอรีประเภทใด ๆscriptnameหรือใช้ทางลัดบนเดสก์ท็อปที่อธิบายไว้ด้านล่าง เพียงเปลี่ยน/pathtoscriptเป็นตำแหน่งจริงของสคริปต์

สร้างทางลัดไปยังสคริปต์วางไว้ใน~/.local/share/applications/และตั้งชื่อเหมือน somename.desktop ด้วยเนื้อหาต่อไปนี้:

[Desktop Entry]
Version=1.0
Name=Script
Comment=
Keywords=Script
Exec=/pathtoscript/scriptname
Terminal=false
X-MultipleArgs=true
Type=Application
Icon=preferences-system
Categories=GTK;Development;
StartupNotify=false

จากนั้นจะปรากฏในรายการแอปพลิเคชัน


1
คำตอบของคุณทำงานขอบคุณ แต่ขอโทษจริง ๆ สคริปต์ยากเกินไปฉันไม่รู้เกี่ยวกับเรื่องนี้ และคำตอบของฉันเป็นรูปธรรมในสคริปต์ แต่ไม่เพียงแค่หาวิธีการแก้ปัญหาใด ๆ ฉันจะ +1 ให้คุณ
nick

1

แม้ว่าคุณจะพบโซลูชันที่คุณสามารถดับเบิลคลิกได้แล้ว แต่ก็มีวิธีแก้ปัญหาที่ทำให้เรียกใช้จากบรรทัดคำสั่งได้ง่ายขึ้น:

ขั้นตอนที่ 1 - เขียนสคริปต์

นี่ครอบคลุมคำตอบของLeonidMewแล้วฉันจะคัดลอกที่นี่:

#!/bin/bash
cd ~/MyDirectory
./myapp +some arguments

แล้ว

chmod u+x scriptname

ขั้นตอนที่ 2 - ทำให้ง่ายต่อการดำเนินการ

คุณต้องสร้างไดเรกทอรี~/binและทำการค้นหาคำสั่งbash ดังนั้นใน terminal เราเขียน:

mkdir ~/bin
mv scriptname ~/bin
vim ~/.profile

ที่นี่ฉันกำลังทำทุกอย่างในเทอร์มินัลคุณสามารถสร้างไดเรกทอรีdirในโฮมไดเร็กตอรี่ของคุณและย้ายสคริปต์ของคุณไปที่นั่นผ่านเครื่องมือกราฟิคที่คุณคุ้นเคย นอกจากนี้ฉันกำลังใช้vimเป็นตัวแก้ไข แต่เป็นการยากสำหรับผู้เริ่มต้นใช้ฉันแนะนำให้คุณเรียนรู้ แต่คุณสามารถใช้ตัวแก้ไขอื่น (แม้แต่กราฟิก) เพื่อแก้ไข.profileภายในโฮมไดเร็กตอรีของคุณโปรดสังเกตว่าไฟล์นี้ ถูกซ่อนไว้โดยค่าเริ่มต้น

คุณต้องเพิ่มสิ่งต่อไปนี้ในตอนท้ายของไฟล์นั้น

# set PATH so it includes user's private bin if it exists
if [ -d "$HOME/bin" ] ; then
    PATH="$HOME/bin:$PATH"
fi

หากคุณใช้เสียงเรียกเข้าคุณกดiเพื่อเริ่มการเพิ่มข้อความจากนั้นEscเพื่อสิ้นสุดการเพิ่ม หลังจากนั้นคุณป้อน:wqไฟล์เพื่อเขียนและออก หรืออย่างที่ฉันพูดไปแล้วให้ใช้เครื่องมือแก้ไขที่ง่ายกว่านี้

ขั้นตอนที่ 3 - เพลิดเพลิน

ตอนนี้มันจะไม่สำคัญว่าคุณอยู่ในไดเรกทอรีใดคุณสามารถพิมพ์scriptnameและกดEnterได้ตลอดเวลา คุณยังสามารถวางสคริปต์และแอปพลิเคชันอื่น ๆ ที่คุณต้องการให้สามารถเรียกใช้งาน~/binได้


1
คุณเขียนวิธีออกจากเสียงเรียกเข้า +1 เพียงล้อเล่นคำตอบที่ดี โซลูชันของคุณมีประโยชน์ มันยังคงเป็นไปได้ที่จะสร้างไฟล์ .desktop เพื่อเรียกใช้สคริปต์จากรายการแอพหรือเมนู (ขึ้นอยู่กับ DE) หลังจากการแก้ไขต้องออกจากระบบโปรไฟล์ / เข้าสู่ระบบ นอกจากนี้ยังสามารถติดตั้งที่บ้านได้ด้วยตัวเลือก noexec ในกรณีนี้จำเป็นต้องใส่สคริปต์ใน / usr / local / bin / (โดยใช้ sudo)
LeonidMew
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.