Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 如何隐藏显示终端命令输出_Bash_Shell_Sh - Fatal编程技术网

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,因此任何相对路径都不起作用,并确保您所依赖的任何环境变量等都可用