你总是可以做类似下面的事情。基本上禁用围绕您正在运行的命令的退出检查。
#!/bin/bash
set -e # eanble exit checking
lorem ipsum
dolor sit amet
# temp disable exit checking
set +e
grep "^${USER}:" /etc/passwd
set -e
consectetur adipiscing elit
Run Code Online (Sandbox Code Playgroud)
除了已经给出的建议,这里还有两个选择。首先,您可以提供一个可以保证成功的备用命令:
grep "^${USER}:" /etc/passwd || true
Run Code Online (Sandbox Code Playgroud)
(基本上,如果grep命令失败,true它将运行,并且由于它总是成功,它会认为复合命令已成功并且不会退出脚本。)
或者,由于您的兴趣是 grep 是否成功(即是否需要添加用户),只需将其用作if语句中的条件:
if ! grep "^${USER}:" /etc/passwd; then
# Create the user account
fi
# Continue installation...
Run Code Online (Sandbox Code Playgroud)
(请注意,命令!之前的grep命令否定测试,因此它仅在grep失败时运行 if 语句的主体。由于grep是复合命令的一部分,因此脚本在失败时不会退出。)
| 归档时间: |
|
| 查看次数: |
4085 次 |
| 最近记录: |