두 개의 매개변수가 있는 명령이 있습니다. 프로세스 대체를 통해 두 개의 매개변수를 생성한다고 가정합니다.
cat <(var=123; echo $var) <(echo $var)
두 번째 대체에서 $var를 사용할 수 있게 하려면 어떻게 해야 합니까?
답변1
문제는 var
첫 번째 하위 쉘에만 할당하고 두 번째 하위 쉘에는 할당된 항목에 액세스할 수 없다는 것입니다. 두 변수 모두에서 변수에 액세스하려면 미리 선언해야 합니다.
var=123
cat <(echo $var) <(echo $var)
원본 콘텐츠를 유지하고 변경 내용을 추적해야 하는 경우:
var=123 # set the default value
PARAM1=$(/bin/something; echo $var) # something could edit var's value
PARAM2=$(/bin/otherthing; echo $var) # so could otherthing
cat <(echo $PARAM1) <(echo $PARAM2)