here 문자열을 사용하는 것보다 bash -c를 사용하는 이점은 무엇입니까? ‘some command’과잉 사용시 실제 이점이 있습니까?bash <<<

bash -c 'some command'과잉 사용시 실제 이점이 있습니까?bash <<< 'some command'

그들은 같은 효과를 얻는 것처럼 보입니다.



답변

bash -c 'some command'발신자의 표준 입력에 대한 액세스 권한을 유지하므로 read표준 입력에서 읽는 명령이 정상적으로 작동합니다. bash <<< 'some command'라인에 입력 전달, 그렇게되고 있음을 대체 bash -c cat하고 bash <<< cat다른 일을.

$ bash -c cat
abc
abc
^D
$ bash <<< cat
$

반면에 $'...'매우 신중한 경우 해당 기능을 사용하여 사용할 표준 입력을 제공 할 수 있습니다 .

$ bash <<< $'read x y\nabc def ghi\necho $y'
def ghi
$

나는 그것에 의존하고 싶지 않지만 때로는 편리 할 수 ​​있습니다.


bash -c또한 인수를 스크립트에 전달하고 $0설정할 수 있습니다.

bash -c 'some command' sh abc def

설정됩니다 $1abc$2def내부 some command.