이 버그는 루비 스크립트에서 쉘 명령을 사용할 때 나타납니다. 명령은 bash 터미널에서 일어나는 것과 같이 실행되지 않습니다.Ruby에서 백틱 및 파이프 사용
처음 두 명령은 합리적이며 세 번째 명령은 적당합니다.
$ echo foo # => "foo\n"
$ echo -n foo # => "foo"
$ echo -n foo | cat # => "foo"
내가 명령 루비에 echo
에 호출에 전달하는 매개 변수를 엉망으로하고 방법이 있나요 : 배쉬에서
`echo foo` # => "foo\n"
`echo -n foo` # => "foo"
`echo -n foo | cat` # => "-n foo\n"
, 우리는 다음과 같은 것? 익숙하지 않다면 echo 명령은 주어진 문자열을 반환합니다. -n
플래그가 없으면 줄 바꿈 문자가 추가되고 -n
을 추가하면 줄 바꿈 문자가 추가되지 않습니다. cat
은 주어진대로 반복합니다.
'ruby -e 'a = \'echo -n foo | 고양이 \'; 인쇄 a'' 여기서 잘 작동! –
@gniourf_gniourf 그것은/bin/sh에 어떤 쉘이 사용되는지에 따라 다릅니다. – chepner