numbers='901.32.02'
firstdigit="${numbers:0:1}"
printf 'The first digit is "%s"\n' "$firstdigit"
Результатом вышеизложенного является
The first digit is "9"
Расширение параметра ${numbers:0:1}
в bash
дает вам подстроку длины 1 от начала строки (смещение ноль ). Этоbash
-специфическая замена параметра (также в некоторых других оболочках, но не в стандарте POSIX ).
В оболочке POSIX вы также можете
firstdigit=$( printf "%s\n" "$numbers" | cut -c 1 )
Это будет использовать cut
для возврата только первого символа.
Или, используя раскрытие стандартных параметров,
firstdigit="${numbers%${numbers#?}}"
Сначала используется ${numbers#?}
для создания строки с первой цифрой , удаленной , затем эта строка удаляется с конца $numbers
, используя ${numbers%suffix}
(, где suffix
— результат первое расширение ).
Вышеприведенное предполагает, что первый символ $numbers
на самом деле является цифрой. Если это не так, вам придется сначала удалить цифры, отличные от -, из начала значения :
numbers=$( printf '%s\n' "$numbers" | sed 's/^[^0-9]*//' )
или,
numbers="${numbers#${numbers%%[0-9]*}}"
${numbers[0]}
работало бы, если бы каждый символ был отдельным элементом в массиве numbers
(и если бы первый символ был цифрой ). Поскольку numbers
не является массивом, он эквивалентен просто $numbers
.
Для автоматического запуска tmux
в~/.bash_profile
(для интерактивных оболочек )или~/.bashrc
(для интерактивных оболочек )используйте что-то вроде
if [[ -z $TMUX ]] && [[ -n $SSH_TTY ]]; then
session=mysession
if tmux has-session -t "$session" 2>/dev/null; then
exec tmux attach-session -t "$session"
else
exec tmux new-session -s "$session"
fi
fi
Это заменит оболочку сеансом tmux
, если оболочка запущена с помощью ssh
, если только текущая оболочка уже не запущена внутри tmux
.
В более новых версиях tmux
вы должны вместо этого использовать
if [[ -z $TMUX ]] && [[ -n $SSH_TTY ]]; then
exec tmux new-session -A -s mysession
fi
Вам следует сделать это после установки таких переменных, как TERM
и LC_*
(, если вы устанавливаете эти ), которые влияют на возможности терминала и локаль.
Помните, что ssh
для работы tmux
требуется псевдо-tty, поэтому вы должны соединиться сssh -t
(или использовать RequestTTY force
в ~/.ssh/config
для соединения ).