Bash нюансы. Часть 2. Длинна переменной

Для того, что бы найти длину строки вы можете использовать следующий синтаксис:

#!/bin/bash
${#variableName}
echo ${#variableName}
len=${#var}

Как пример использования, небольшой скрипт для добавления FTP пользователя:

#!/bin/bash
# Usage : Add a ftp user
_fuser="$1"
_fpass="$2"

# die if username/password not provided
[ $# -ne 2 ] && { echo "Usage: addftpuser username password"; exit 1;}

# Get username length and make sure it always <= 8
[[ ${#_fuser} -ge 9 ]] && { echo "Error: Username should be maximum 8 characters in length. "; exit 2;}

# Check for existing user in /etc/passwd
/usr/bin/getent passwd "${_fuser}" &>/dev/null

# Check exit status
[ $? -eq 0 ] && { echo "Error: FTP username \"${_fuser}\" exists."; exit 3; }

# Add user
/sbin/useradd -s /sbin/nologin -m  "${_fuser}"
echo "${_fpass}" | /usr/bin/passwd "${_fuser}" --stdin

Часть 1. Значение по умолчанию для переменных
Часть 2. Длинна переменной

Bash нюансы. Часть 1. Значение по умолчанию для переменных

Не все знают, что в bash  есть возможность назначить входной переменной параметр по умолчанию. Как пример, если параметр $1 не задан то использовать root:

user=${1:-root}

Еще один пример использования:

#!/bin/bash
dir="${1:-/tmp}"
cp * $dir
echo "Все скопировано в ${dir}"

Вы так же можете назначить значение по умолчанию обычной переменной. Как пример выведем значение параметра $VAR при помощи echo, при этом, если $VAR не задан то присвоить значение parametr:

echo ${VAR:=parametr}

Важно помнить, что со специальными параметрами, такими как например $1 необходимо использовать конструкцию ${var:-defaultValue}
 

Часть 1. Значение по умолчанию для переменных
Часть 2. Длинна переменной