보다 편리한 방법으로 신청서를 시작하려면 어떻게해야합니까?


9

저는 우분투에서 처음입니다. 다음과 같은 방식으로 열리는 응용 프로그램이 있습니다. 콘솔에 입력합니다.

cd ~/MyDirectory
./myapp +some arguments

솔루션을 어떻게 찾을 수 있습니까? 매번 콘솔에 이러한 명령을 입력하지 않고도 응용 프로그램을 시작할 수 있습니까? 박쥐 스크립트 또는 Windows의 .lnk와 같은 스크립트를 생각하고 있습니다.

다른 유사한 질문에서 스크립팅에 대한 언급과 토론 만 있었기 때문에 해결책을 찾지 못했습니다. 다른 질문에서 "cd"명령을 사용하는 방법을 찾지 못했습니다.이 질문은 내가 제안한 다른 질문과 중복되지 않습니다.


@steeldriver, 아니요,이 질문에서 해결책을 찾지 못했습니다. cd 명령과 스크립트를 통한 앱 실행에 대해서는 아무것도 없습니다.
nick

# 1 마 당신이 원하는 솔루션이 바탕 화면을 클릭 할 수있는 아이콘으로, 또는 이것은 당신이 프롬프트 명령에서 실행하려면 /해야 할 일을 할 것인가? # 2 인수는 얼마나 자주 변경됩니까?
RonJohn

대화 (이 경우 안전하게)에는 데스크톱이 있다고 가정합니다. 스크립팅 세계에는 종종 없습니다.
mckenzm

답변:


21

스크립트는 지나치게 과잉입니다.

다음과 같은 .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 편집 해 주셔서 감사합니다. 공백이있는 경로를 처리해야 할 수도 있습니다. :
Jacob Vlijm

1
현재 디렉토리 ( )가 기본적으로 PATH 변수의 일부 가 아니기 때문에 ./myapp …대신 쓸 수 있습니다 . myapp ….
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 명령을 위해 그것을 검색 할 수 있습니다. 터미널에서 우리는 다음과 같이 씁니다.

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

vim 을 사용하는 경우을 눌러 i텍스트 추가를 시작한 다음 Esc추가를 종료합니다. 그런 다음 :wq파일 쓰기 및 종료 를 입력 합니다. 또는 이미 말했듯이 더 간단한 편집기를 사용하십시오.

3 단계-즐기십시오

이제는 어떤 디렉토리에 있든지 상관없이 언제든지 입력 scriptname하고 키를 누를 수 Enter있습니다. 에서 실행하려는 다른 스크립트 및 응용 프로그램을 배치 할 수도 있습니다 ~/bin.


1
vim에서 나가는 방법, +1 농담, 좋은 대답을 썼습니다. 귀하의 솔루션이 유용합니다. 앱 목록 또는 메뉴 (DE에 따라 다름)에서 스크립트를 실행하기 위해 .desktop 파일을 만들 수 있습니다. 패치 후 .profile 로그 아웃 / 로그인이 필요합니다. noexec 옵션을 사용하여 home을 마운트 할 수도 있습니다.이 경우 스크립트를 / usr / local / bin /에 넣고 sudo를 사용하십시오.
LeonidMew
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.