[ -f **.sh ] && source **.sh
时间: 2023-08-17 09:07:00 浏览: 134
这是一个 shell 脚本中的条件语句,意思是如果当前目录下存在以 ".sh" 结尾的文件,则执行该文件中的命令。具体来说,这个条件语句包括两个部分:
1. `[ -f **.sh ]`:这是一个测试条件,用来判断当前目录下是否存在以 ".sh" 结尾的文件。其中,“-f” 选项表示测试文件是否存在且为普通文件。
2. `&& source **.sh`:如果测试条件为真(即存在以 ".sh" 结尾的文件),则执行后面的命令 `source **.sh`。其中,“&&” 表示逻辑与,只有当测试条件为真时才会执行后面的命令。`source` 命令用于在当前 shell 环境中执行指定脚本文件中的命令。
综上所述,这个条件语句的作用是在当前目录下查找以 ".sh" 结尾的文件,如果存在,则执行该文件中的命令。
相关问题
for i in /etc/init.d/S??* ;do # Ignore dangling symlinks (if any). [ ! -f "$i" ] && continue case "$i" in *.sh) # Source shell script for speed. ( trap - INT QUIT TSTP set start . $i ) ;; *) # No sh extension, so fork subprocess. $i start ;; esac done
这段代码是一个 shell 脚本,它遍历 `/etc/init.d` 目录下以 `S` 开头并跟着两个任意字符的文件。对于每个文件,它检查文件是否存在,如果是一个符号链接则跳过。然后,根据文件的扩展名进行不同的处理:
- 如果文件扩展名是 `.sh`,则使用子 shell 运行该脚本。
- 如果文件没有扩展名,那么它被认为是一个可执行文件,使用子进程运行该文件,并传递 `start` 参数。
简而言之,这段代码用于启动位于 `/etc/init.d` 目录下的系统服务。