Объект вне функции передается в функцию, указывая ссылку на внешний obejct. Когда вы используете эту ссылку для манипулирования своим объектом, объект наружу, таким образом, затрагивается. Однако, если внутри функции вы решили указать ссылку на что-то еще, вы вообще не повлияли на объект снаружи, потому что все, что вы делали, перенаправляло ссылку на что-то еще.
Ваш grep, вероятно, удаляет цветовые коды ls
, потому что он имеет свою собственную окраску.
Вы «можете» сделать это:
ls -l --color=always | grep --color=never pattern
Однако, очень важно, чтобы вы поняли, что именно вы здесь grep
ping. Не только grep
ping ls
не нужен (вместо этого используйте glob
), этот конкретный случай - grep
пинг через не только имена файлов и статистику файла, но также и цветовые коды, добавленные ls
!
Настоящий ответ на ваш вопрос: Не grep
это. Никогда не нужно трубить ls
во что угодно или захватывать его вывод. ls
предназначен только для интерпретации человека (например, look в только в интерактивной оболочке, и для этой цели это очень удобно, конечно). Как уже упоминалось ранее, вы можете отфильтровать, какие файлы ls
перечислены с помощью глобусов:
ls -l *.txt # Show all files with filenames ending with `.txt'.
ls -l !(foo).txt # Show all files with filenames that end on `.txt' but aren't `foo.txt'. (This requires `shopt -s extglob` to be on, you can put it in ~/.bashrc)
Я настоятельно рекомендую вам прочитать эти два превосходных документа по этому вопросу:
ls
: http://mywiki.wooledge.org/ParsingLs glob
s: http://mywiki.wooledge.org/glob Вы должны проверить, действительно ли вы используете «реальные» ls, просто путем прямого вызова двоичного файла:
/bin/ls ....
Потому что: Код, который вы описали, действительно должен работать, если только ls игнорирует --color = всегда для какой-то странной причины или ошибки.
Я подозреваю, что некоторые псевдонимы или функции добавили (напрямую или через переменную) некоторые параметры. Дважды проверьте, что это не так.
ls
– duckyflip 15 May 2009 в 12:47ls -l --color=always /dev/disk/by-uuid/ | grep --color=never sda
– A.D. 22 October 2014 в 21:59