IT박스

공백으로 경로를 입력하는 방법은 무엇입니까?

itboxs 2020. 12. 15. 08:27
반응형

공백으로 경로를 입력하는 방법은 무엇입니까?


경로를 가리키는 변수가있는 속성 파일을 사용하는 기본 파일이 있습니다.

속성 파일은 다음과 같습니다.

TMP_PATH=/$COMPANY/someProject/tmp
OUTPUT_PATH=/$COMPANY/someProject/output
SOME_PATH=/$COMPANY/someProject/some path

문제는 SOME_PATH공백이있는 경로를 사용해야한다는 것입니다 (변경할 수 없음).

나는 따옴표로 공백을 이스케이프하려고 시도했지만 지금까지는 해결책이 없습니다.

경로를 편집했는데 작은 따옴표의 문제는 경로에 다른 변수 $COMPANY를 사용하고 있다는 것입니다.


다음 세 가지 변형 중 하나를 사용하십시오.

SOME_PATH="/mnt/someProject/some path"
SOME_PATH='/mnt/someProject/some path'
SOME_PATH=/mnt/someProject/some\ path

당신이 스스로 해결책을 찾은 페데리코를 봅니다. 문제는 두 곳에서 발생했습니다. 귀하의 경우 할당에는 적절한 인용이 필요합니다.

SOME_PATH="/$COMPANY/someProject/some path"

가능한 솔루션 중 하나입니다.

그러나 쉘에서 이러한 따옴표는 메모리에 저장되지 않으므로이 변수를 사용하려면 다시 인용해야합니다. 예를 들면 다음과 같습니다.

NEW_VAR="$SOME_PATH"

그렇지 않으면 공간이 다음과 같이 명령 수준으로 확장되기 때문입니다.

NEW_VAR=/YourCompany/someProject/some path

그것은 당신이 원하는 것이 아닙니다.

자세한 내용은 http://www.cofoh.com/white-shell에 대한 내 기사를 참조하십시오.


바로 앞에 \를 넣어 "공백"문자를 이스케이프 할 수 있습니다.


SOME_PATH=/mnt/someProject/some\ path

작동해야


파일에 매개 변수 할당 만 포함 된 경우 소싱 대신 다음 루프를 사용할 수 있습니다.

# Instead of source file.txt
while IFS="=" read name value; do
    declare "$name=$value"
done < file.txt

이렇게하면 파일에서 인용 할 필요가 없으며 .NET에서 임의의 코드를 실행할 위험이 없기 때문에 더 안전 file.txt합니다.


Ubuntu의 경로가 "/ home / ec2-user / Name of Directory"이면 다음을 수행하십시오.

1) 자바의 build.properties 파일 :

build_path='/home/ec2-user/Name\\ of\\ Directory'

어디 ~/와 같 습니까?/home/ec2-user

2) Jenkinsfile :

build_path=buildprops['build_path']
echo "Build path= ${build_path}"
sh "cd ${build_path}"

참조 URL : https://stackoverflow.com/questions/12902227/how-to-input-a-path-with-a-white-space

반응형