我想在 Linux 上创建一个脚本来创建一些不存在的目录。目录是在脚本本身内部声明的(不是从命令行传递的):
#!/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
如您所见,我创建了其中一个目录。然后我需要再次重复相同的代码,但使用不同的目录(下次我希望创建varAppDataDir)。
我试图弄清楚如何声明一个函数:
my_function($dir) {
echo $dir
}
my_funciotn("HELLO")
但我得到错误:
./test.sh: line 27: syntax error near unexpected token `$dir'
./test.sh: line 27: `my_function($dir) {'
那么如何正确地做到这一点呢?
函数在 POSIX shell 或 Bash 中没有命名参数。相反,参数显示在位置参数、
$1
、$2
等中。如果需要,您必须手动将它们复制到命名的局部变量。所以:
(标准中没有指定局部变量,但是除了 ksh(ksh93?)之外,几乎所有的 shell 都对它们进行相同的处理。)
看: