Вы просили сценарий оболочки, но, надеюсь, awk
подойдет:
/^Total thrust =/ {thrust = $4}
/^Total torque =/ {torque = $4}
/^Time =/ {if (found) exit; if ($3 == time) found=1}
END {print torque " " thrust}
$ awk -v time=25 -f find_thrust_torque.awk file1
1.03723 -8.49093
$ awk -v time=26 -f find_thrust_torque.awk file1
1.03953 -8.51463
Существует множество способов, в зависимости от того, какая информация вам нужна, чтобы различать ваши машины.
dmidecode -t1
показывает информацию о компьютере, на котором вы работаете, включая производителя и модель, например.
> dmidecode -t1 | grep Version
Version: ThinkPad T520
uname -a
выводит системную информацию, такую как имя хоста сетевого узла(-n
)и версию ядра (-r
).
lsb_release -a
показывает конкретную информацию о распределении -, например.
> lsb_release -d
Description: Ubuntu 16.04.3 LTS
ИМХО, подсказка — лучший способ напомнить вам, где вы находитесь. Его можно использовать, чтобы напомнить вам о машине, текущем имени пользователя, каталоге и т. д. Подсказка всегда присутствует в командной строке, поэтому ее будет трудно игнорировать. Использование какой-либо другой команды для поиска текущего имени машины (, например hostname
), очевидно, также будет работать, но вы забудете это сделать.
Задайте в качестве основного приглашения строку, содержащую имя хоста:
PS1="$(id -un)@$(hostname) \$ "
Это на моей текущей машине и для моего пользователя установит приглашение на
kk@client.local $
Вы можете использовать hostname -s
вместо простого hostname
, чтобы удалить доменную часть имени хоста.
Некоторые оболочки, такие как bash
, имеют сокращенные обозначения, которые вы можете использовать для одного и того же. Дляbash
(замените \H
на \h
, чтобы получить более короткую версию имени хоста ):
PS1='\u@\H \$ '
Обратите внимание, что вexport
PS1
нет необходимости, так как он используется только текущим процессом оболочки.
Изменения этой переменной можно внести в файл инициализации оболочки. Для bash
измените ~/.bashrc
. Прочтите руководство по вашей оболочке о PS1
.
Для очень маленьких экранов вы можете придумать собственную динамическую подсказку:
case "$(hostname)" in
bigserver*) promptstr='bs' ;;
srv-*) promptstr='srv' ;;
accounting*) promptstr='a' ;;
web-dev-*) promptstr='wd' ;;
*) promptstr=$(hostname -s) ;;
esac
PS1="$promptstr \$ "
Или просто используйте первые три символа имени хоста:
HOSTNAME=$(hostname)
PS1="${HOSTNAME:0:3} \$ "
(для этого требуется оболочка, которая знает, как делать такого рода подстановку переменных, очевидно, но bash
делает)
... или просто какой-то другой индикатор, чтобы напомнить вам, что вы больше не локальны, например, использовать *
перед$
(PS1='*$ '
)удаленно, не используя этот индикатор локально. Или любой другой из множества возможных подсказок.