MSYS2 x64 및 Cygwin64 bash, 콘솔 및/bin/sh 스크립트에서 다음 명령을 실행하려고합니다.루프 내 파이프로 대체 할 때 MSYS2 bash가 떨어집니다.
for a in 0; do
echo b=$(echo "c-d" | tr - _)
done
출력 가져 오기 : B =
을 때 예상 : B STATUS_STACK_OVERFLOW 예외로 = c_d
그리고 sh.exe.stackdump 파일. 이 작업은 루프 내에서 대체 및 파이프를 사용하여 행에서 tr, grep, sed와 같은 작업을 수행 할 때만 발생합니다. Bash 버전 4.4.12 (최신).
이전에 동일한 Cygwin 빌드에서 오류없이 실행 된 ffmpeg configure 스크립트, parse 옵션의 변경된 부분입니다.
원래 스크립트는
for opt do
case "$opt" in
#...
--enable-?*|--disable-?*)
eval $(echo "$opt" | sed 's/--/action=/;s/-/ option=/;s/-/_/g')
#...
;;
#...
esac
done
bash는 옵션이 문제를 해결할 수있는 방법이 무엇입니까?
당신은 당신이'/ 빈/sh' 스크립트로이를 실행하고 말을? '/ bin/bash' 스크립트로 시도 했습니까? [Shebang'#!/bin/bash'] – mathB
예, 동일한 예외가 발생합니다 –
'변경된 부분'뿐만 아니라 ffmpeg 스크립트의 '원본 부분'을 제공 할 수 있습니까? 또는 그것이 효과를 내기 전에 무엇이 있었고, 이것을 얻기 위해 무엇을 바꾸 었는가? – mathB