Bash 如何隐藏显示终端命令输出
当我运行这个命令时Bash 如何隐藏显示终端命令输出,bash,shell,sh,Bash,Shell,Sh,当我运行这个命令时 sudo htpasswd -b /home/reynolds/.htpasswd admin admin 我正在终端中获取输出更新用户管理员的密码,但我不想显示该输出。所以我在google中搜索了一些,并尝试使用以下命令 sudo htpasswd -b /home/reynolds/.htpasswd admin admin 2>&1 sudo htpasswd -b /home/reynolds/.htpasswd admin admin > /d
sudo htpasswd -b /home/reynolds/.htpasswd admin admin
我正在终端中获取输出更新用户管理员的密码
,但我不想显示该输出。所以我在google中搜索了一些,并尝试使用以下命令
sudo htpasswd -b /home/reynolds/.htpasswd admin admin 2>&1
sudo htpasswd -b /home/reynolds/.htpasswd admin admin > /dev/null
但我仍然在终端中获得该输出。请帮助避免在运行此命令时显示此类输出。请给我一些建议,因为我是shell脚本的初学者
谢谢
> /dev/null
正常输出被抑制,但仍显示错误
跟着命令走
> /dev/null 2>&1
所有的事情,包括错误都被抑制了只要做以下事情
sudo htpasswd -b /home/reynolds/.htpasswd admin admin > /dev/null 2>&1
应该把一切都藏起来 出现此错误的原因是
sudo
仅适用于参数列表中的第一个命令
解决这个问题的方法是使用bash作为示例,像这样封装您的命令:
sudo bash -c "htpasswd -b /home/reynolds/.htpasswd admin admin 2>&1"
请记住,这将创建一个新的bashshell,因此任何相对路径都不起作用,并确保您所依赖的任何环境变量等都可用