명령줄에서 gedit를 호출할 때 `gedit Something & disown` 동작을 기본 동작으로 어떻게 변경합니까?

명령줄에서 gedit를 호출할 때 `gedit Something & disown` 동작을 기본 동작으로 어떻게 변경합니까?

명령줄에서 파일을 제출 하면 gedit항상 터미널이 잠기고 분리된 프로세스에 명시적으로 명령을 내리는 데 지쳤습니다.

gedit별칭을 그런 식으로 설정하려고 시도했지만 gedit $* & disown올바른 구문이 아니거나 별칭으로 실행 가능한 바이너리 명령을 오버로드하는 것을 허용하지 않습니다(.bash_aliases 함수에서 사용해 보세요.

alias gedit=editorz

function editorz()
{
  gedit $* & disown
}

), 필수는 아닙니다.

gedit test.txt그러면 이 명령이 원래 터미널 창을 잠그지 않도록 하려면 어떻게 해야 합니까 ?

답변1

.bash_aliases이렇게 하면 작동합니다. 콘텐츠를 읽었 습니까 ? (이것은 표준 문서는 아니지만 귀하의 문서일 수 있습니다 ~/.bashrc. .bashrc및 에 대해 혼동하는 경우 .bash_profile다음을 참조하세요..bashrc와 .bash_profile의 차이점.)

함수에 오류가 있습니다. 오류가 발생해야 합니다.

editorz () {
  gedit "$@" & disown
}

귀하의 버전은 공백이나 쉘 와일드카드가 포함된 파일 이름에서는 작동하지 않습니다. 키워드는 function선택사항입니다.

함수를 호출할 수 있지만 gedit별칭을 완전히 생략할 수 있지만 함수 내부 호출은 함수가 아닌 명령에 대한 호출임을 쉘에 알려야 합니다.

gedit () {
  command gedit "$@" & disown
}

Ctrl실수로 포그라운드에서 gedit를 시작한 경우(예: 터미널 잠그기) 터미널에서 +를 누르고 Z명령을 입력 하여 백그라운드로 넣을 수 있습니다 bg.

답변2

function editorz()별칭 앞에 정의 되어 있는지 확인하세요 .

나는 당신의 방법을 시도했지만 아무런 문제가 없었습니다.

답변3

gedit터미널 대신 유틸리티 폴더에서 열면 문제가 해결되었습니다.

답변4

다음 별칭을 추가하면 됩니다.

alias gedit='gedit -b'

-b옵션은 백그라운드에서 실행됨을 의미합니다.

관련 정보