"exec" 명령의 동작

"exec" 명령의 동작

명령을 계산하고 실행하기 위해 bash 스크립트를 작성 중입니다.

결과를 변수에 넣고 표시합니다.

그러면 exec가 완료됩니다.

Exec 프로그램은 입력 데이터를 허용해야 합니다.

사용 사례에서는 입력 데이터가 표시되지 않습니다.

왜인지 이해가 안 돼요...

해결책(t2.sh)을 찾았으나 왜 t1.sh가 원하는 대로 작동하지 않는지 궁금합니다.

$ cat t1.sh
#!/bin/bash

t=$\'ssh xxx@localhost "mysql -P3306 -u uuuu -ppppp -h localhost DB_test -e \\\'select now()\\\'"\'

v=$(eval $t | tail -n1)
#v=$(bash <<< $t | tail -n1)

echo $v

exec cat
$ ./t1.sh <<< "toto"
Pseudo-terminal will not be allocated because stdin is not a terminal.
mysql: [Warning] Using a password on the command line interface can be insecure.
2020-04-24 21:56:59
$ ##### toto is not displayed, why ?
$ cat t2.sh
#!/bin/bash

t=$\'ssh xxx@localhost "mysql -P3306 -u uuuu -ppppp -h localhost DB_test -e \\\'select now()\\\'"\'

#v=$(eval $t | tail -n1)
v=$(bash <<< $t | tail -n1)

echo $v

exec cat
$ ./t2.sh <<< "toto"
Pseudo-terminal will not be allocated because stdin is not a terminal.
mysql: [Warning] Using a password on the command line interface can be insecure.
2020-04-24 21:57:10
toto
$

관련 정보