Учитывая, что command file
просто открывает файл и с тех пор работает как то, если это было stdin
, существует мало различия. С перенаправлением оболочки Вы просто открываете файл заранее (оболочка делает) в противоположность самому двоичному файлу команды.
Если мы говорим о cat file | command
по сравнению с. command <file
, затем последний предпочтен. Вы не собираетесь замечать значительное различие в производительности между этими двумя, но первый является излишне сложным (дополнительный процесс и буфер общей памяти для канала, с ограниченной пропускной способностью.) Кроме того, Вы не можете seek
(измените позицию указателя файла произвольно) в канале, в то время как Вы можете в обычном файле. Некоторые команды могут использовать более эффективный алгоритм когда seek
- луг во входном файле возможен.
Используйте псевдонимы оболочки, они не вмешаются в другие сценарии/команды, они только заменяются, когда команда была введена в интерактивном режиме:
alias install="sudo apt-get install"
Можно поместить это в конфигурационный файл оболочки (~/.bashrc
например), и это будет определено на всех Ваших сессиях оболочки.
Можно использовать $1
(и так далее для Энного) относиться к первому аргументу передало функции или $*
относиться ко всем ним. $@
формат относится ко всем аргументам, передал, но расширится в отдельные слова:
function install(){
sudo apt-get install "$@"
}
Вы могли затем вставить это Ваш ~/.bashrc
файл так, чтобы это было доступно каждый раз, Вы входите в систему.
В этом случае простой псевдоним мог бы также добиться цели:
$ alias install="sudo apt-get install"
Это может также быть помещено в тот же файл.
~/.bashrc
таким же образом так, чтобы у Вас есть они каждый раз, когда Вы тянете оболочку удара. буфер обмена
– Caleb
02.08.2011, 17:33