Как печатать/выводить символ стрелки (не клавиши) в unix - bash, версия 3.2.52

Когда Вы выполняете сценарий оболочки удара, например, путем выполнения исполняемого файла, строка хижины которого #!/bin/bash, скрипт запущен в неинтерактивной оболочке. Одна из функций неинтерактивной оболочки - то, что история отключена. Таким образом, если бы Вы хотите, чтобы Ваш сценарий смог использовать историю, необходимо было бы сделать что-то вроде этого:

#!/bin/bash
HISTFILE=~/.bash_history   # Or wherever you bash history file lives
set -o history             # enable history
history | grep git

Конечно, в этом случае Вы, возможно, просто сделали:

grep git ~/.bash_history

Так как оба из вышеупомянутого требует что файл истории (~/.bash_history) будьте актуальны, которым это почти наверняка не будет.

Я не уверен, как Вы запускаете свой скрипт после того, как строка хижины удалена. Определение источника файла (например, с .) не то же как запущение скрипта, потому что команды работают в текущей оболочке, которой действительно включали историю.

2
12.11.2019, 16:42
2 ответа

С bash 4.2 и выше ( или ksh , mksh , pdksh , lksh , zsh ), вы можете использовать ANSI C Цитата :

echo $'\U2191'

или установка языкового стандарта с помощью символов Юникода:

LC_ALL=C.UTF-8 printf '\U2191\n'

или вместо этого вы можете использовать perl :

perl -CS -le 'print "\x{2191}"'
2
27.01.2020, 22:00

Перейдите к таблице юникода: http://unicode-table.com/en/sets/arrows-symbols/ , возьмите стрелку, которая вам нравится, и затем распечатайте ее с соответствующим кодом перед by \ u :

echo -e "\u2191"

или лучше использовать printf :

printf "\u2191\n"
2
27.01.2020, 22:00

Теги

Похожие вопросы