Eu quero criar um script no Linux para criar alguns diretórios se eles não existirem. Os diretórios são declarados dentro do próprio script (não sendo passados da linha de comando):
#!/bin/bash
varBaseDir="/home/user"
# Directories to create
varAppDir="${varBaseDir}/app"
varAppDataDir="${varBaseDir}/appData"
if [[ -d ${varAppDir} ]]
then
echo "app dir exist"
else
echo "app dir does not exist! creating '${dir}' ..."
mkdir -p ${dir}
if test "$?" -eq "0"
then
echo "succeeded."
else
echo "failed to create directory"
fi
fi
Como você pode ver eu crio um dos diretórios. Então eu precisaria repetir o mesmo código novamente, mas com um diretório diferente (na próxima vez eu quero que o varAppDataDir seja criado).
Eu tentei descobrir como declarar uma função:
my_function($dir) {
echo $dir
}
my_funciotn("HELLO")
mas recebo erro:
./test.sh: line 27: syntax error near unexpected token `$dir'
./test.sh: line 27: `my_function($dir) {'
Então, como fazer isso direito?
As funções não têm argumentos nomeados no shell POSIX ou Bash. Em vez disso, os argumentos aparecem nos parâmetros posicionais,
$1
,$2
, etc.Você terá que copiá-los manualmente para variáveis locais nomeadas, se desejar. Então:
(variáveis locais não são especificadas no padrão, mas praticamente todos os shells, exceto ksh (ksh93?) os tratam da mesma forma.)
Ver: