bash -c 'some command'mempertahankan akses ke input standar pemanggil, jadi readatau perintah membaca dari input standar akan bekerja secara normal. bash <<< 'some command'mengganti input itu dengan jalur yang dilewati, jadi bash -c catdan bash <<< catlakukan hal yang berbeda.
$ bash -c cat
abc
abc
^D
$ bash <<< cat
$
Di sisi lain, Anda dapat menggunakan fitur itu untuk memberikan input standar Anda sendiri untuk digunakan $'...', jika Anda sangat berhati-hati:
$ bash <<< $'read x y\nabc def ghi\necho $y'
def ghi
$
Saya tidak ingin bergantung pada itu, tapi kadang-kadang bisa nyaman.
bash -cjuga memungkinkan argumen untuk diteruskan ke skrip, dan $0ditetapkan:
bash -c 'some command' sh abc def
akan diatur $1ke abcdan $2ke defdalam some command.