(Это ответ Фила Росса, но мне нужно форматирование:)
Используя одну из моих учетных записей Linux:
sh> /bin/sh --version
GNU bash, version 3.2.39(1)-release (i386-redhat-linux-gnu)
Copyright (C) 2007 Free Software Foundation, Inc.
sh> /bin/sh 'ls -l -R'
/bin/sh: ls -l -R: No such file or directory
sh> /bin/sh ls
/bin/ls: /bin/ls: cannot execute binary file
sh> /bin/sh -c 'ls -l | head -1'
total 147296
sh>
Использование одной из моих установок Cygwin:
sh> /bin/sh --version
GNU bash, version 3.2.49(23)-release (i686-pc-cygwin)
Copyright (C) 2007 Free Software Foundation, Inc.
sh> /bin/sh 'ls -l -R'
/bin/sh: ls -l -R: No such file or directory
sh> /bin/sh ls
/usr/bin/ls: /usr/bin/ls: cannot execute binary file
sh> /bin/sh -c 'ls -l | head -1'
total 264744
sh>
Ваш /bin/sh
может отличаться, но это подходящее поведение:
- предоставление аргумента имени файла в / bin / sh интерпретирует его как имя файла сценария оболочки и попытается выполнить его
- предоставление аргумента -c будет интерпретировать этот аргумент как командную строку / bin / sh и попытаться выполнить его
Для получения более подробной информации введите
man sh