shell函数删除传参的目录,传参为多个目录以空格为分隔
时间: 2023-05-31 15:05:33 浏览: 58
符。
可以使用如下的shell函数来删除传参的目录:
```bash
function delete_directories() {
for dir in "$@"; do
if [ -d "$dir" ]; then
rm -rf "$dir"
echo "Deleted directory $dir"
else
echo "Directory $dir does not exist"
fi
done
}
```
这个函数使用了一个for循环来遍历传递的所有目录参数。如果目录存在,就使用`rm -rf`命令来递归地删除目录及其内容。如果目录不存在,则输出一条消息。函数使用`"$@"`来引用传递的所有参数,这些参数被当作一个数组来处理。在函数内部,可以使用`$dir`来访问当前遍历的目录参数。
相关问题
那SRCDIR如何包含多个目录
要让 SRCDIR 包含多个目录,可以使用空格或分号来分隔不同的目录路径,例如:
```
SRCDIR = src_dir1 src_dir2 src_dir3
```
或者
```
SRCDIR = src_dir1;src_dir2;src_dir3
```
这样 SRCDIR 就包含了三个不同的目录路径。当你在 Makefile 中使用 SRCDIR 变量时,可以通过 foreach 函数或者 shell 命令来遍历这些目录并进行相应的操作。
shell中函数
在 shell 脚本中,函数是一段可重复调用的代码块,可以带参数,并且可以返回值。定义函数的语法如下:
```
function_name() {
command1
command2
...
return value
}
```
其中,`function_name` 为函数名,可以自定义;`command` 为函数体中需要执行的命令;`return` 用于返回函数值,可以省略。
函数的调用方式与其他语言类似,直接使用函数名调用即可。调用函数时,可以传递参数,参数之间以空格分隔,函数内部可以使用 `$1`、`$2` 等变量来引用这些参数。例如:
```
function_name arg1 arg2 ...
```
下面是一个简单的例子,用于计算两个数的和:
```
#!/bin/bash
# 定义函数 sum
function sum() {
a=$1
b=$2
c=$(($a + $b))
return $c
}
# 调用函数 sum
sum 10 20
result=$?
echo "10 + 20 = $result"
```
以上示例中,先定义了一个名为 `sum` 的函数,该函数接受两个参数,并计算它们的和。然后,在主程序中调用该函数,并将返回值保存在 `result` 变量中,最后输出结果。