특정 옵션/인수를 사용하여 실행 파일을 실행하는 심볼릭 링크를 생성할 수 있습니까?
한 가지 해결 방법은 PATH 디렉터리 중 하나에 bash 스크립트를 만드는 것이라는 것을 알고 있지만 심볼릭 링크를 통해 어떻게든 달성할 수 있습니까?
편집: 답변해 주셔서 감사합니다. 제 경우에는 dmenu에서 matlab을 시작하는 방법을 찾고 있었고 적어도 아치 matlab에서는 처음에 터미널에서만 호출할 수 있었기 때문에 별칭이 작업을 수행하지 못했습니다. dmenu는 별칭을 고려하지 않기 때문에 작동하지 않습니다. 질문을 더 명확하게 해야 합니다.
답변1
아니요, 심볼릭 링크는 다른 파일의 경로를 참조하는 파일 형식입니다.
이제 이렇게 하면:
ln -s /bin/cat foo
다음과 같이 호출됩니다 foo
.
$ ./foo -A /proc/self/cmdline
./foo^@-A^@/proc/self/cmdline^@
당신은 알아 차릴 것입니다첫 번째cat
/받은 인수는 foo
이거나 ./foo
아닙니다 cat
. 따라서 어떤 면에서 해당 심볼릭 링크를 통해 우리는 cat
다른 결과를 받습니다.첫 번째토론. 이것은 당신이 원하는 것이 아닐 수도 있습니다첫 번째논란에도 불구하고.
쉘 스크립트 래퍼를 사용하는 것이 이 문제를 해결하는 일반적인 방법입니다. 하지만 bash
이를 위해 사용할 필요는 없습니다 . 귀하의 시스템 표준은 sh
다음 요구 사항을 충족하기에 충분합니다.
#! /bin/sh -
exec /path/to/my/executable --extra-option "$@"
다른 옵션에는 /...에서 이에 대한 alias
또는 함수를 정의하는 것이 포함됩니다.~/.bashrc
~/.zshrc
답변2
내가 이해하는 바에 따르면 예를 들어 호출 script.sh
하고 실행하여 우분투에서 호출할 때 실제로 Linux에서 script.sh arg1
와 같이 별칭을 사용하여 grep --color=auto를 호출할 수 있다고 가정하겠습니다.grep
이를 위해 별칭을 만들고 배포판에 따라 올바른 파일에 넣습니다. 예를 들어 우분투에서는 넣을 수 ~/.bashrc
있습니다
alias grep='grep --color=auto'
alias script.sh='script.sh arg1'
자세한 내용은:http://www.hostingadvice.com/how-to/set-command-aliases-linuxubuntudebian/