shell函数删除传参的目录,传参为多个目录以空格为分隔
时间: 2023-05-31 09:05:33 浏览: 85
符。
可以使用如下的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`来访问当前遍历的目录参数。
相关问题
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` 变量中,最后输出结果。
shell脚本调用函数
在shell脚本中调用函数,可以按照以下步骤进行:
1. 定义函数
在脚本中定义函数,可以使用以下语法:
```
function 函数名() {
函数体
}
```
或者:
```
函数名() {
函数体
}
```
其中,函数名可以任意取名,函数体中可以包含任意的shell命令和语句。
2. 调用函数
在脚本中调用函数,可以使用以下语法:
```
函数名 参数1 参数2 ...
```
其中,参数可选,多个参数之间用空格分隔。如果函数需要返回值,可以使用`return`语句返回值。
下面是一个示例:
```
#!/bin/bash
function say_hello() {
echo "Hello, $1!"
}
name="Tom"
say_hello $name
```
输出结果为:
```
Hello, Tom!
```
在上面的示例中,定义了一个名为`say_hello`的函数,函数体中使用`echo`命令输出一句问候语。然后在脚本中定义了一个名为`name`的变量,赋值为`Tom`,最后使用`say_hello`函数输出问候语并传入`name`变量的值作为参数。
阅读全文