2014-01-10 3 views
0

좋아요. 정말 이상한 질문이 있습니다. 많은 분들이 아마 이유를 묻습니다.Bash가 스크립트로 파일을 읽습니다.

파일을 스크립트로 읽고 즉시 새 파일로 출력해야합니다. 내가 더 적절하게 생각해, 나는 스크립트로 스트리밍하고 파일로 출력한다.

dev 팀의 java 프로세스가 내 스크립트 (script.sh)를 호출하고 "파일"및 일부 변수를 읽습니다.

난 당신이 다음을 수행 할 수 있습니다 알고

./script.sh var1 var2 var3 

을하고 당신이 $ 1 $ 2, 좋은, 그리고 그 $ 3

를 통해 그 변수에 액세스 수를 그 그들은에 몇 가지를 통과하는 방법 스크립트를 사용하지만 XML 파일을 읽을 필요가 있습니다. (실제로는 아직 파일이 아닙니다. 자바 프로세스에서 출력 된 것입니다.) 나는 이것이 이것이 어떻게 작용할 것인가라고 생각한다.

./script var1 var2 var3 < file 

기본적으로 내 스크립트가 할 필요가 제일 먼저 출력 file.xml은, 다음 스크립트는 메리 방법에 대해 가서 다른 일을 변수로 작업하고 일을 시작합니다 말을 "파일"입니다 해야합니다.

0> file.xml 

또는

/dev/stdin > file.xml 

하지만 아무것도 작동합니다

내가 파일을 가정이 스크립트에 전달되는 내가 좋아하는 일을 시도 그래서 stdin을한다. 나는 큰 개념상의 실수를 저질렀다고 생각한다. 누군가 도와 주실 수 있습니까?

감사합니다.

+0

정교하게 설명해 주시겠습니까? – Atomiklan

답변

2

사용 cat : 인수와

cat > file.xml 

는, 고양이는 표준 입력에서 읽고 표준 출력에 기록합니다.

개념상의 실수로 파일 설명자가 정수가 아니며 데이터 이동과 같은 작업을 자체적으로 수행 할 수 없다고 생각하지 않았습니다. 하나를 읽고 다른 하나를 쓸 수있는 프로세스가 필요합니다.

데이터 이동에 대한 또 다른 익숙한 프로세스는 cp이며 실제로는 cp /dev/stdin file.xml을 수행 할 수 있지만 이는 관용적이지 않으며 몇 가지 함정이 있습니다.

+0

+1 'cat'의 쓸데없는 사용. – tripleee

관련 문제