${ varname :- palavra }: Se o varname existir e não for nulo, retorna o valor do varname, caso contrário retorna a palavra. Usado para retornar um valor padrão quando uma variável não existe ou não está definida. Se for ${ varname - palavra }, pode ser nulo quando o varname existe, por exemplo, definimos myparam=, retornando o valor do varname, caso contrário retornando a palavra. Você também pode apagar ":", que tem o mesmo significado e não é repetido.
${ varname := palavra }: Se o varname existe e não é nulo, retorna o valor do varname, caso contrário atribui a ele um valor de palavra e retorna esse valor. Usado para definir um padrão para uma variável que não existe ou não está definida. Para parâmetros de posição, somente leitura e não podem ser atribuídos.
${ varname :? mensagem }: Se varname existir e não for null, retorna o valor de varname, caso contrário imprime a informação varname:message e abortar script; se não definirmos a mensagem, será usado o padrão "parâmetro null or not set". Usado para verificar erros onde variáveis não estão definidas.
${ varname :+ palavra }: Se o varname existir e não for nulo, retorna o valor da palavra, caso contrário, retorna nulo. Usado para detectar a presença ou ausência de variáveis.
${ varname : offset : comprimento }: Operação para pegar a subcorda. Ele retorna uma sequência de comprimento a partir da posição deslocada no varname. A primeira posição é 0, se o comprimento não for dado ou for inválido (menor que 0), todos os caracteres após o deslocamento são retornados, e se for {@:offset:length}, o parâmetro total de comprimento do parâmetro do script do primeiro parâmetro de offset é retornado.
Crie um novo script de teste test.sh da seguinte forma:
|