bash脚本程序判断/usr/bin目录下是否存在sed命令,如果不存在就拷贝/bin/busybox到/usr/bin并命令为sed, 若存在就不处理
时间: 2023-08-15 18:06:30 浏览: 37
你可以使用以下的 bash 脚本来实现这个需求:
```bash
#!/bin/bash
if ! command -v sed &> /dev/null; then
cp /bin/busybox /usr/bin/sed
chmod +x /usr/bin/sed
fi
```
这个脚本通过 `command -v` 命令来检查 sed 命令是否存在,如果不存在则将 `/bin/busybox` 复制到 `/usr/bin/sed` 并赋予执行权限。如果 sed 命令已经存在,则不会进行任何处理。
注意,执行此脚本需要具有足够的权限。另外,建议在执行之前先做好备份,以免出现意外情况。
相关问题
/bin/bash 和 /usr/bin/bash区别
/bin/bash 和 /usr/bin/bash 都是 Bash Shell 的可执行文件,它们的区别在于安装位置。
/bin/bash 是 Bash Shell 的默认安装路径,是一个系统级别的路径,包含了系统启动和运行所需的基本工具和命令,如 /bin, /sbin, /usr/bin, /usr/sbin 等。
而 /usr/bin/bash 是 Bash Shell 的另一个安装路径,是一个用户级别的路径,包含了一些用户级别的工具和命令,如 /usr/bin, /usr/sbin, /usr/local/bin, /usr/local/sbin 等。
简单来说,/bin/bash 是系统级别的 Bash Shell,而 /usr/bin/bash 是用户级别的 Bash Shell。在大多数情况下,我们可以使用这两个路径下的 Bash Shell 执行相同的命令,但是一些特定的应用程序可能需要使用特定的路径下的 Bash Shell。
-bash: /usr/local/mysql/bin/: 是一个目录
这个错误提示表明你尝试执行的是一个目录,而不是可执行文件。可能是因为你在执行命令时没有指定具体的可执行文件名。你可以尝试在目录名后面加上具体的可执行文件名,例如:
```bash
/usr/local/mysql/bin/mysql
```
这将会执行`mysql`可执行文件。如果你不确定具体的可执行文件名,你可以在该目录下使用`ls`命令查看可执行文件列表。例如:
```bash
ls /usr/local/mysql/bin/
```