Честно говоря, я думаю, что | grep ''
просто отлично. Вы уже использовали кучу программ в конвейере, так что не помешает еще одна. И вы уже знаете, что делает grep
, так что нет никакой отладки в отношении написания какого-то «умного» фрагмента оболочки для этого.
В комментариях упоминается также | grep.
, что может быть еще одной возможностью. grep.
не соответствует пустой строке, grep ''
соответствует, поэтому выбирайте в зависимости от того, какой из них вы хотите.
Тем не менее, использование grep
таким образом может быть неочевидным для случайного читателя, поэтому в любом случае вы можете добавить комментарий о его назначении.
Предоставление команды ls
в приглашении сделает немного больше, чем просто вызов /bin/ls
. Если бы ls
был псевдонимом или функцией, вызывался бы этот псевдоним или функция. Если это не было ни тем, ни другим, и если это не было встроенным -в команде(ls
очень редко является встроенным -в команде ), тогда поиск пути был бы выполнен для ls
в каждом каталоге в список с разделителями:
-в переменной окружения $PATH
.
Будет выполнен ls
, который был первым , найденным в $PATH
. Потенциально это может быть ls
, а не /bin/ls
, если каталог, содержащий такое имя, находится раньше, чем /bin
, в списке $PATH
.
Использование /bin/sh
позволит обойти поиски псевдонимов и функций, а также любые поиски в $PATH
и вместо этого будет запускать эту команду напрямую.
Разница в цвете вывода между ls
и /bin/ls
, возможно, может быть объяснена тем, что ls
является псевдонимом, который добавляет дополнительные параметры командной строки при вызове утилиты ls
(проверьте с помощью alias ls
или type -a ls
в bash
).