编辑:
我正在尝试构建一个简单的函数,该函数打印出一个名称,然后创建一个目录。我是使用bash构建函数的新手,所以下面的脚本不起作用:
dest_path=/home/all/todo
line="name"
mkdir_for_name() {
echo $1
mkdir $2
}
mkdir_for_name $name
mkdir_for_name $dest_path/$name
该语法有什么问题?
答案 0 :(得分:2)
由于您使用的是echo
,因此我相信您要打印目录名称;当然,您需要向函数传递2个参数。可以通过以下方式调用您的函数。这样,您无需更改代码。
mkdir_for_name "$name" "$dest_path/$name"
完整脚本:
dest_path=/home/all/todo
line="name"
mkdir_for_name() {
echo "$1"
mkdir "$2"
}
mkdir_for_name "$name" "$dest_path/$name"
答案 1 :(得分:0)
您的函数使用$2
,但是您只用一个参数调用它,因此$2
为空。
答案 2 :(得分:0)
您定义了一个接受2个参数的函数,其中传递的第一个参数是要在屏幕上打印的名称(“ echo”行),而传递的第二个参数将创建所需的文件夹。 仅传递一个参数只会在屏幕上显示该参数