2013-10-13 6 views
0

에서 입력 데이터를 채우기는전화 bash는 스크립트와 나는 bash는 스크립트가 다른 bash는 스크립트

을 a.sh 내가 a.sh를 실행할 때, 나는 몇 읽기를 작성해야합니다. 이걸 이렇게 가정 해 봅시다.

./a.sh 
Please input a comment for script usage 
test (I need to type this line mannually when running the script a.sh, and type "enter" to continue) 

이제 새 스크립트 b.sh에서 a.sh를 호출합니다. b.sh가 "test"문자열을 자동으로 채울 수있게 할 수 있습니까?

그리고 다른 하나의 문제는, a.sh 내가 a.sh을 변경하지 않고 내 b.sh에 뭔가를 수행하여 a.sh에서 인쇄를 음소거 할 수 있습니다, 콘솔에 인쇄를 많이 소유?

감사합니다.

답변

1

광범위한 제한 내에서 하나의 스크립트가 다른 스크립트에 표준 입력을 제공하도록 할 수 있습니다.

그러나, 당신은 아마 아직도 당신이 그 지시를 만족 아무것도 못 했음에도 불구하고 프롬프트를 볼 것입니다. 그것은 나빠질 것입니다. 또한 a.sh의 기능에 따라 표준 입력에서 더 많은 정보를 읽어야 할 수도 있지만 스크립트가 올바른 정보를 제공하는지 확인해야합니다.

그러나 일반적으로이 문제를 방지하려고합니다. 입력을 요구하는 스크립트는 자동화에 좋지 않습니다. 명령 줄 인수를 통해 입력을 제공하는 것이 좋습니다. 따라서 두 번째 스크립트 인 b.sha.sh으로 쉽게 이동할 수 있습니다.

0

a.sh

#!/bin/bash 
read myvar 
echo "you typed ${myvar}" 

b.sh

당신은이 방법으로이 작업을 수행 할 수 있습니다
#!/bin/bash 
echo "hello world" 

:

$ ./b.sh | ./a.sh 
you typed hello world 
$ ./a.sh <<< `./b.sh` 
you typed hello world