Портативный способ сделать это мог быть:
perl -MPOSIX -le 'print strftime "%Y%m%d", localtime((lstat)[9]) for @ARGV' /etc/hosts
Более ранние реализации, которым предоставляют вопрос, полагаются на последовательность команд, которая использует tr
и ряд однобайтовых символов. Как был объяснен в этом Вопросы и ответы, утилита не может обработать многобайтовые символы, такие как Unicode. Но усиление тех символов было довольно важно в достижении желаемого эффекта. "Решение" было предоставлено, который позволяет смешивать единственный байт и много символы байта в едином потоке для рендеринга. Решение, разработанное там, представлено и настроено здесь:
Z1=$(echo -en '\xe2\x97\x98') #◘ 1
Z2=$(echo -en '\xe2\x95\x9a') #╚ 2
Z3=$(echo -en '\xe2\x95\x9c') #╜ 3
Z4=$(echo -en '\xe2\x95\x9d') #╝ 4
Z5=$(echo -en '\xe2\x95\x9e') #╞ 5
Z6=$(echo -en '\xe2\x95\x9f') #╟ 6
Z7=$(echo -en '\xe2\x96\x91') #░ 7
Z8=$(echo -en '\xe2\x96\x92') #▒ 8
Z9=$(echo -en '\xe2\x96\x93') #▓ 9
N1=$(echo -en '\xe2\x94\x80') #─ a
N2=$(echo -en '\xe2\x95\x92') #╒ b
N3=$(echo -en '\xe2\x95\x97') #╗ c
N4=$(echo -en '\xe2\x96\xb6') #▶d
N5=$(echo -en '\xe2\x94\xbc') #┼ e
N6=$(echo -en '\xe2\x94\xa4') #┤ f
N7=$(echo -en '\xe2\x95\xa1') #╡ g
Z11="$(tr -dc '123456789a' < /dev/urandom | head -c 1)" //Z11 to Z13 not
Z12="$(tr -dc '123456789a' < /dev/urandom | head -c 1)" // used here (see
Z13="$(tr -dc '123456789a' < /dev/urandom | head -c 1)" //link)
echo -en $(tr -dcs ' ;",15bdef' ' ' < /dev/urandom | head -c $(echo -en "$[$(tput cols) * $(tput lines)]") | sed -e "s/1/$(echo -en "\033[0;36m$Z1\033[0m")/g" -e "s/5/$(echo -en "\033[0;32m$Z5\033[0m")/g" -e "s/b/$(echo -en "\033[1;36m$N2\033[0m")/g" -e "s/d/$(echo -en "\033[1;36m$N4\033[0m")/g" -e "s/e/$(echo -en "\033[0;32m$N5\033[1;32m")/g" -e "s/f/$(echo -en "\033[0;36m$N7\033[1;32m")/g"); tput cup 1
^set^+^chars^ to implement from pool - here 1,5,b,d,e,f... so_________________________^add the appropriate sed subprocessing units for implemented chars i.e. first one we replace "1" with the value of $Z1 and apply color at the same time, then all the chars move down the pipe to all required blocks - we selected to implement 6 chars here so we have 6 sed blocks.
[N.B. To remove the blank space from the pattern, remove it from both sets: tr -dcs ';",15bdef' '']
PS1="\[\033[1;36m\] $(echo -en '\xe2\x96\x91')$(echo -en '\xe2\x96\x92')$(echo -en '\xe2\x96\x93')[\t]$(echo -en '\xe2\x96\x93')$(echo -en '\xe2\x96\x92')$(echo -en '\xe2\x96\x91') \[\033[7;36m\]$(echo -en '\xe2\x97\x98')$(echo -en '\xe2\x94\xbc')$(echo -en '\xe2\x94\x80')\W$(echo -en '\xe2\x94\x80')\[\033[0;36m\]$(echo -en '\xe2\x94\x80')$(echo -en '\xe2\x94\x80')$(echo -en '\xe2\x94\x80')@$(echo -en '\xe2\x96\xb6')\[\033[0;36m\]"
PROMPT_COMMAND="echo -en '\033[0;36m$(tr -dc '=' < /dev/urandom | head -c $(tput cols))\n\033[01;46m$(tr -dc '~' < /dev/urandom | head -c $(tput cols))\033[0;36m$(tr -dc '=' < /dev/urandom | head -c $(tput cols))'$(tput cuu 2)"
Эта реализация больше не представляет на строку, а скорее печатает целую последовательность в одном выстреле в конце sed
обработка. Это появляется только при входе в систему однажды или обычно когда bash
запускается. Вот один такой случайный шаблон в запуске (мы видим два оттенка зеленого цвета и два оттенка голубого цвета):
Экраны показывают результат в стандартном терминале Linux, и он работает в xterm также. Я использовал некоторые из тех новых символов шаблона в подсказке PS1, тогда как PROMPT_COMMAND просто заботится об активной строке и ее 2 дополнениях строки, которые используют 1-байтовые символы.
Шаблон также соответствует хорошо моему текущему распределению, которое звонит archbey
в .bashrc.:
Это находится в для Рождества! Люди аплодисментов :)
Дисплеем управляет терминал программное обеспечение, которое работает то же веб-браузером: это интерпретирует последовательности символов для установки дисплея (см. человека terminfo). Оболочка удара не будет говорить терминал, как заполнить пустой регион экрана.
Некоторые терминалы могут иметь изображения как фон как gterm, но это не сделано оболочкой.
aafire
, например,aafire -driver curses -extended -gamma 1 -floyd_steinberg -random 5
для теплого введения. – 10.01.2014, 22:40