Bash에서 emacs 데몬 관리 기능을 만드는 동안 문제가 발생했습니다.
다음은 함수 스 니펫입니다.
function ne
{
if [ $# -ge 2 -a "$1" '==' "-s" ]
then
server="$2";
param=${@:3};
else
server="default";
param=${@:1};
fi
nbsrv=`ls ~/.emacs.d/server | grep "$server" | wc --chars`
if [ "$nbsrv" '==' "0" ]
then
echo "Starting server '$server'";
emacs --daemon=$server
fi
emacsclient --server-file=$server -nw $param;
}
거의 작동하며 문제는 다음과 같습니다.
param=${@:x}
예를 들어 다음을 실행하면 :
ne -s srv1 file1 file2
2 개의 새 파일이 열리지 않고 "file1 file2"라는 이름의 파일이 하나 열립니다.
어떻게하면 잘 작동 할 수 있을지 알고 계십니까?
감사 !
JM445
추신 : 제 영어가 완벽하지 않다면 죄송합니다. 저는 프랑스어입니다.
이를 위해 bash 배열을 사용하지 마십시오. 그냥 shift
위치 매개 변수 떨어져 당신이 원하는하지 않으며,과는 emacsclient에 나머지를 통과"$@"
이 수정이 적용된 스크립트는 다음과 같습니다.
if [ $# -ge 2 -a "$1" '==' "-s" ]
then
server="$2";
shift 2;
else
server="default";
fi
nbsrv=`ls ~/.emacs.d/server | grep "$server" | wc --chars`
if [ "$nbsrv" '==' "0" ]
then
echo "Starting server '$server'";
emacs --daemon=$server
fi
emacsclient --server-file=$server -nw "$@";
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다