Вы можете обернуть сценарий оболочки вокруг ssh
, но сам ssh
этого не сделает.
Одним из способов использования функции bash является (, помещенный в~/.bashrc
):
function ssh() { command ssh -p 22 "$@" || command ssh -p 5492 "$@"; }
Кстати, рекомендуется использоватьroot
-зарезервированные порты для системных служб, таких как ssh
, чтобы у пользователей не было процесса, который прослушивает, скажем, порт 5492. В противном случае они могут играть в человека посередине и, возможно, захватить данные для входа. Итак, используйте порт
Решение, использующее только bash
без необходимости внешних команд
#!/bin/bash
newstring='6 + 6 * 9'
read -a atoms <<<"$newstring"
run=${atoms[0]} # Initialise running total to the first value
for ((i=1; i<=${#atoms[@]}; i+=2))
do
op=${atoms[$i]} # Next operator
num=${atoms[$((i+1))]} # Next number
run=$((run $op num)) # Perform the arithmetic (integer maths)
done
echo "$run"
Если вы хотите использовать плавающую арифметику, вам нужно будет использовать bc
или dc
. В этом варианте используется dc
, как предложено в комментарии
#!/bin/bash
newstring='6.5 + 6 * 9'
{
read -a atoms <<<"$newstring"
run=${atoms[0]}
printf "%s " "$run"
for ((i=1; i<=${#atoms[@]}; i+=2))
do
op=${atoms[$i]} num=${atoms[$((i+1))]}
printf " %s %s" "$num" "$op"
done
printf " p\n"
} | dc