파일 경로를 파일에 저장하고 전달해야 합니다.콘텐츠이 파일은 다음과 같이 쉘 스크립트, 특히 Maven에 대한 인수로 사용됩니다.
mvn -Dvar_name=(contents of file)
이것이 작동합니까?
mvn -Dvar_name=(cat /path/to/file)
?
답변1
이는 다음과 같이 명령 대체를 사용하여 수행할 수 있습니다.
mvn -Dvar_name="$(cat /path/to/file)" # POSIX
mvn -Dvar_name="$(</path/to/file)" # bash
그러나 여기에는 주목할 만한 주의 사항이 있습니다. 모든 후행 개행 문자는 제거됩니다. 그래도 문제가 되지 않는다면 이 방법은 효과가 있을 것입니다.
실제로 한 줄만 읽으려면 read
다음과 같이 를 사용할 수 있습니다.
IFS= read -r line < /path/to/file
mvn -Dvar_name="$line"
답변2
$()
명령 대체를 위해서는 `` 또는 백틱을 사용해야 합니다 .
인용 대체도 중요합니다. 그렇지 않으면 파일에 여러 단어가 포함되어 있으면 여러 인수로 확장됩니다. 여기 몇 가지 예가 있어요.
mvn -Dvar_name="$(< /path/to/file)" # bash
mvn -Dvar_name="$(cat /path/to/file)" # POSIX