공백으로 경로를 입력하는 방법은 무엇입니까?
경로를 가리키는 변수가있는 속성 파일을 사용하는 기본 파일이 있습니다.
속성 파일은 다음과 같습니다.
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
'IT박스' 카테고리의 다른 글
yield를 사용한 재귀 (0) | 2020.12.15 |
---|---|
mongodb 문서에서 부분 문자열을 바꾸는 방법 (0) | 2020.12.15 |
Spring @Scheduled 주석이 달린 메소드는 다른 스레드에서 실행됩니까? (0) | 2020.12.15 |
Android 앱을 기기에 업로드 할 수 없음 (오래된 dexed jar) (0) | 2020.12.15 |
Newtonsoft.Json.Linq.JArray를 문자열 배열로 C # (0) | 2020.12.15 |