나는 그렇게 할 수 있는 것을 좋아합니다 export BROWSER="lynx -cfg=~/.lynx.cfg"
. 직접 시도하고 별칭 설정도 시도했지만 alias lynx="lynx -cfg=~/.lynx.cfg"
아무 것도 작동하지 않았습니다. (이 변수를 사용하여 브라우저를 시작하는 도구는 여전히 내 프로필을 무시하거나 브라우저를 전혀 시작하지 않는다는 의미입니다.)
답변1
$BROWSER
많은 유틸리티에서 귀하의 웹 브라우저를 선택하는 것으로 간주합니다.
유틸리티에 따라 다음이 포함될 것으로 예상됩니다.
- 실행 파일의 경로 또는 이름
- 첫 번째 단어는 경로 또는 이름이고 다른 단어는 초기 인수 목록인 단어 목록입니다. 운이 좋다면 쉘이 수행하는 것과 유사한 어떤 형태의 인용도 이해할 수 있습니다.
- (매우 가능성이 낮고 현명하지 못함) 쉘 명령줄의 시작입니다.
첫 번째 상황에 처해 있는 경우 사용하려는 유틸리티가 존재하지 않는 "lynx -cfg=~/.lynx.cfg"
명령에 대해 불평할 것으로 예상됩니다.
~
세 번째 경우 에는 쉘이 -cfg=~/.lynx.cfg
. zsh
이 작업은 이 옵션이 활성화된 경우에만 수행됩니다 . a는 a의 왼쪽 내용이 유효한 변수 이름처럼 보이고 POSIX 모드가 아닌 경우에만 확장됩니다.magicequalsubst
bash
~
=
=
그러나 lynx
(내 시스템의 버전 2.8.9dev.16 이상)은 ~
그 자체를 홈 디렉토리로 이해하는 것 같으므로 홈 디렉토리가 2등급 및 3등급 유틸리티에서 작동할 것으로 기대합니다.
$ BROWSER='echo -cfg=~' sensible-browser foo
-cfg=~ foo
따라서 귀하의 브라우저는네번째Category는 첫 번째 단어를 제외한 모든 것을 무시하거나 브라우저에 그 의미를 묻는 메시지를 표시합니다. 또는 귀하의 버전은 "home"이 무엇을 의미하는지 lynx
이해하지 못합니다 .~
유틸리티를 실행하여 strace -fe execve the-utility
수행하려는 작업을 확인하십시오.
귀하의 버전이 제품군으로 간주 lynx
되지 않는 경우 다음과 같이 정의할 수 있습니다.~
$BROWSER
export BROWSER="lynx -cfg=$HOME/.lynx.cfg"
( $HOME
공백이나 따옴표(또는 기타 쉘 관련 문자)가 없다고 가정)
$BROWSER
어쨌든 다음과 같이 올바른 매개변수를 에 전달하는 스크립트를 정의할 수 있어야 합니다 lynx
.
#! /bin/sh -
exec lynx -cfg="$HOME/.lynx.cfg" "$@"
그리고 그것을 당신의 $BROWSER
.
그건 그렇고, $HOME
캐릭터로 시작한다면 어리석은 일이 될 것입니다. 그래서 이러한 캐릭터를 개별적으로 다루는 것은 좋은 생각이 아닙니다.~
lynx
lynx
~
답변2
나는 당신이 할 수 없다고 생각하지만, 시도해 볼 수 있습니다:
절대 경로를 사용해야 합니다.
export BROWSER='/home/username/lynx.sh'
홈 디렉터리에 새 파일 lynx.sh를 만듭니다.
#!/bin/bash
linx -cfg=/home/username/.lynx.cfg
실행 가능하게 만드세요.
그 다음에:
Launching Browser should launch lynx.
or
./lynx.sh
및/또는:
유형:
whereis lynx
다음 단계에서 사용됩니다.
bash_aliases 편집:
lynx.cfg의 절대 경로를 사용해야 합니다.
lynx의 절대 경로를 사용해야 합니다(/usr/bin/에 없는 경우).
alias=lynx='/path/to/lynx -cfg=/home/username/.lynx.cfg'
경로에 특수 문자가 포함된 경우 ""를 사용해야 합니다.