하위 프로세스의 스크립트 파일에 있는 참조 변수

하위 프로세스의 스크립트 파일에 있는 참조 변수

가지다 a.sh:

#!/bin/bash

foo=':bar baz:'
declare varvar=aaaaaa
export xyz=abc

echo "$foo ok"
hoge=huga env piyo=alice bash -i

실행 ./a.sh( |은 커서, >프롬프트):

:bar baz: ok
> |

입력이 있습니다:

echo "foo: '$foo'"
echo "varvar: '$varvar'"
echo "xyz: '$xyz'"
echo "hoge: '$hoge'"
echo "piyo: '$piyo'"

예상 출력:

> echo "foo: '$foo'"
foo: ':bar baz:'
> echo "varvar: '$varvar'"
varvar: 'aaaaaa'
> echo "xyz: '$xyz'"
xyz: 'abc'
> echo "hoge: '$hoge'"
hoge: 'huga'
> echo "piyo: '$piyo'"
piyo: 'alice'
> |

실제 출력:

> echo "foo: '$foo'"
foo: ''
> echo "varvar: '$varvar'"
varvar: ''
> echo "xyz: '$xyz'"
xyz: 'abc'
> echo "hoge: '$hoge'"
hoge: 'huga'
> echo "piyo: '$piyo'"
piyo: 'alice'
> |

$foo그것을 얻고 $varvar올바르게 표시하는 방법은 무엇입니까 ?

답변1

문제를 해결하세요 a.sh.

#!/bin/bash

set -a
foo=':bar baz:'
declare varvar=aaaaaa
export xyz=abc

echo "$foo ok"
hoge=huga env piyo=alice bash -i

모든 변수를 내보낼 수 있습니다.

관련 정보