나는 다음을 시도했습니다 :
export PATH=>>-
$HOME/.cargo/bin:
$HOME/.bkaradzic/bx/tools/bin/linux:
$HOME/.bkaradzic/bimg/tools/bin/linux:
$HOME/.dotnet:
$HOME/.android-ndk-r17b:
$PATH
export PATH=${PATH//$'\r'/}
export PATH=${PATH//$'\n'/}
export PATH=${PATH//$'\x20'/}
아직
-bash: /home/hydroper/.cargo/bin:: No such file or directory
-bash: /home/hydroper/.bkaradzic/bx/tools/bin/linux:: No such file or directory
-bash: /home/hydroper/.bkaradzic/bimg/tools/bin/linux:: No such file or directory
-bash: /home/hydroper/.dotnet:: No such file or directory
-bash: /home/hydroper/.android-ndk-r17b:: No such file or directory
어떤 제안이 있으십니까?
답변1
첫 번째 줄이 경로 확장을 시작한다고 생각하는 것 같습니다. 이것은 사실이 아닙니다. 첫 번째 줄은 완전한 명령입니다.
export PATH= >> -
위 줄은 더 나은 이해를 위해 약간의 공백을 사용하여 작성되었으며 PATH
빈 문자열로 설정되고 명령 출력을 파일에 추가합니다 -
.
다음 줄은 다음 명령입니다.
$HOME/.cargo/bin:
시스템에 존재할 수 있는 디렉토리 이름과 콜론으로 확장됩니다. 밝혀지다
-bash: /home/hydroper/.cargo/bin:
: 해당 파일이나 디렉터리가 없습니다.
답변2
비슷한 것을 원하는 것 같습니다.
export PATH="$(paste -sd : - << EOF
$HOME/.cargo/bin
$HOME/.bkaradzic/bx/tools/bin/linux
$HOME/.bkaradzic/bimg/tools/bin/linux
$HOME/.dotnet
$HOME/.android-ndk-r17b
$PATH
EOF
)"
paste -s
파일의 모든 행을 연결하는 명령입니다( -d
제공되는 구분 기호를 사용하여 -
표시됨 ).실제 파일 대신 표준 입력에 대해 이 작업을 수행합니다., -
일부 구현에서는 생략될 수 있지만 이는 표준/이식 가능하지 않습니다.
ksh93
mksh
/ 또는 bash
공백 제거에 대한 질문에 대답하려면 다음을 수행하십시오 zsh
.
PATH=${PATH//[[:space:]]}
개행 문자를 포함한 ASCII 문자를 포함한 모든 공백 문자가 제거됩니다. 일치하는 문자 목록은 로케일 및 시스템에 따라 다르지만(예를 들어 모든 시스템에 줄바꿈 방지 공백이 포함되어 있는 것은 아님) 항상 모든 ASCII 문자(TAB, LF, VT, FF, CR, SPC)가 포함됩니다.
$PATH
개행 문자를 먼저 입력하려면 다음을 수행해야 합니다.
export PATH="
$HOME/.cargo/bin:
$HOME/.bkaradzic/bx/tools/bin/linux:
$HOME/.bkaradzic/bimg/tools/bin/linux:
$HOME/.dotnet:
$HOME/.android-ndk-r17b:
$PATH"
>>
<<
또는 <<-
here-doc 연산자 와 혼동할 수 있는 출력 리디렉션 연산자입니다 . 그러나 입력을 리디렉션하려는 <<
경우 에도 위의 예 <<-
와 같이 입력을 읽는 명령에서 이를 사용해야 하며 명령 대체( 위의 예에서)를 사용하여 해당 명령의 출력을 매개변수로 전달해야 합니다. .paste
$(...)
export
다음 작업도 수행할 수 있습니다.
export PATH="\
$HOME/.cargo/bin:\
$HOME/.bkaradzic/bx/tools/bin/linux:\
$HOME/.bkaradzic/bimg/tools/bin/linux:\
$HOME/.dotnet:\
$HOME/.android-ndk-r17b:\
$PATH"
$HOME
큰따옴표 안에( 큰따옴표를 확장 하려면 큰따옴표가 필요함 ) \
줄 끝에서 를 사용하여 긴 부분을 나눌 수 있습니다.논리적여러 줄을 만들어라물리적. $PATH
회의아니요개행 문자가 포함되면 \<newline>
시퀀스가 제거됩니다.
또는 따옴표가 ~
확장되고( :
할당의 뒤 포함) \<newline>
제거되는 외부 부분도 있습니다.
PATH=\
~/.cargo/bin:\
~/.bkaradzic/bx/tools/bin/linux:\
~/.bkaradzic/bimg/tools/bin/linux:\
~/.dotnet:\
~/.android-ndk-r17b:\
$PATH
export PATH
(를 사용하면 bash
여기서도 export PATH=...
작동하지만 다른 모든 쉘에서는 작동하지 않습니다).
에서는 zsh
다음을 수행할 수 있습니다.
path=(
~/.cargo/bin
~/.bkaradzic/bx/tools/bin/linux
~/.bkaradzic/bimg/tools/bin/linux
~/.dotnet
~/.android-ndk-r17b
$path
)
또는
path[1,0]=(
~/.cargo/bin
~/.bkaradzic/bx/tools/bin/linux
~/.bkaradzic/bimg/tools/bin/linux
~/.dotnet
~/.android-ndk-r17b
)
에서와 같이 배열은 다음과 같습니다 zsh
.$path
묶음in 또는 $PATH
와 같은 변수 에 .csh
tcsh