Итак, я работаю над скриптом, где часть его генерирует массив файлов/каталогов и распечатывает их для подтверждения пользователем того, что они были выбраны правильно. Я хотел бы покрасить каталоги по-разному, чем файлы, например ls.Bash: условно текст вывода цвета
В настоящее время, вот как я вывода данных:
printf ' %q\n' "${files[@]}"
Это прекрасно работает. Я знаю, как использовать цветовые коды для изменения вывода цвета printf, я просто не знаю, как сделать это условным.
Чтобы облегчить ситуацию, я использую флаг -p для начала вывода файла. Таким образом, все каталоги заканчиваются символом /. Опять же, я не просто полностью уверен, как написать эту конкретную условную логику, даже если я знаю, что должен быть способ.
Заранее спасибо.
Как объявить 2 переменные, которые содержат формат для файлов/каталогов, затем перебирают ваш список и '[-d" $ i "] && printf" $ colorfmt "" $ i "|| printf "$ plainfmt" "$ i" '? –
'-d' выглядит более * дорогим *, что' [["$ 1" ~ * /]] '? (или что бы то ни было, точные символы совпадения оболочки). В противном случае, отличный материал! Опубликуйте как ответ, и я поднимусь. Всем удачи. – shellter