shell判断文件不存在则创建一个
时间: 2023-09-10 19:13:37 浏览: 203
在shell中,可以使用测试命令 `test` 或 `[ ]` 来判断文件是否存在,如果不存在则可以使用 `touch` 命令来创建文件。具体命令如下:
```bash
if [ ! -e 文件路径 ]; then
touch 文件路径
fi
```
上述命令中,`if` 语句的条件判断是否存在文件,如果不存在则执行 `touch` 命令来创建文件。`!` 表示逻辑非,表示判断文件是否不存在。
另外,如果要创建文件的同时,还需要给文件赋予一定的权限,可以在 `touch` 命令后加上权限参数,如下所示:
```bash
if [ ! -e 文件路径 ]; then
touch 文件路径
chmod 权限 文件路径
fi
```
其中,`chmod` 命令可以修改文件的权限,`权限` 表示需要修改的权限,`文件路径` 表示需要修改的文件路径。例如, `chmod 777 文件路径` 表示给文件赋予读、写、执行权限。
相关问题
shell判断文件是否存在,不存在则创建文件
Shell中判断文件是否存在可以使用 `test` 或者 `[ ]` 条件判断,语法如下:
```
if test -e 文件名; then
# 文件存在,执行相关操作
else
# 文件不存在,创建文件
touch 文件名
fi
```
或者
```
if [ -e 文件名 ]; then
# 文件存在,执行相关操作
else
# 文件不存在,创建文件
touch 文件名
fi
```
其中,`-e` 参数表示文件存在时返回 true,不存在返回 false。
另外,创建文件可以使用 `touch` 命令,语法为:
```
touch 文件名
```
shell脚本(函数定义及两个参数调用,一个参数是当前时间,一个是日志文件),函数中判断文件是否存在,如果文件不存在则创建文件,如果存在则读取并追加日志内容
以下是一个示例的 shell 脚本,其中定义了一个名为 `log` 的函数,该函数接受两个参数:当前时间和日志文件路径。函数中会根据日志文件是否存在来决定是创建新文件还是读取并追加日志内容。
```shell
#!/bin/bash
log() {
local current_time="$1"
local log_file="$2"
# Check if log file exists
if [ ! -f "$log_file" ]; then
touch "$log_file"
fi
# Append log content to log file
echo "[$current_time] $@" >> "$log_file"
}
# Usage example:
log "$(date)" "/var/log/myapp.log" "Something happened"
```
在上面的例子中,我们使用 `touch` 命令创建新的日志文件,`echo` 命令将日志内容追加到文件末尾。注意在日志内容中使用了 `$@` 变量,它表示函数调用时除第一个参数外的其他所有参数,这里即为日志内容。
阅读全文