Можно управлять масштабом это bc
выводы с scale=<#>
аргумент.
$ echo "scale=10; 5.1234 * 5.5678" | bc
28.52606652
$ echo "scale=5; 5.1234 * 5.5678" | bc
28.52606
Используя Ваш пример:
$ bc <<< 'scale=2; 1.5 * 1.5'
2.25
Можно также использовать -l
переключатель (благодаря @manatwork), который инициализирует масштаб к 20 вместо значения по умолчанию 0. Например:
$ bc -l <<< '1.5 * 1.5'
2.25
$ bc -l <<< '1.52 * 1.52'
2.3104
Можно читать больше о scale
в bc
страница справочника.
Составьте спецификацию приглашения по частям, или используйте промежуточные переменные, или их комбинацию. SSH устанавливает переменную SSH_CLIENT
, которая указывает, откуда вы вошли в систему. Затем вы можете использовать имя хоста, чтобы определить, где вы вошли.
if [[ -n $SSH_CLIENT ]]; then
case $HOSTNAME in
*.example.com) prompt_user_host_color='1;35';; # magenta on example.com
*) prompt_user_host_color='1;33';; # yellow elsewhere
esac
else
unset prompt_user_host_color # omitted on the local machine
fi
if [[ -n $prompt_user_host_color ]]; then
PS1='\[\e['$prompt_user_host_color'm\]\u@\h'
else
PS1=
fi
PS1+='\[\e[1;34m\] \w\[\e[1;31m\]$(__git_ps1)\[\e[1;0;37m\] \$\[\e[0m\] '
Как и другой, но вы могли бы также использовать отдельный rc-файл для ssh
.
<<\SSH_RC \
tee -a ~/.ssh/rc
case $HOSTNAME in
(host1) sshclr=1;;
(host2) sshclr=3;;
esac
... и где бы вы ни назначали свои $PS1
...
PS1="\[\e[1;$((32+ssh_clr))"'...
... вы можете оставить его в одинарных кавычках...
PS1='\[\e[$((!$?|4));$((32+sshclr))...'
... что должно подчеркивать, если последняя выполненная команда выходила с ненулевым кодом выхода. Вот картинка...
Я добавил туда расширение ${SSH_CLIENT+ssh:}
, чтобы четко обозначить @ssh:
при таком подключении....