我们有一些通过命令行执行的 bash 命令
Sample Bash Command: ksh Script.ksh Filename filepath userid host password
在命令行中,我们需要传递密码,但在执行时会显示密码。有什么方法可以修改 bash 命令并将“密码显示为 **** ”。
Sample: ksh Script.ksh Employee.txt /home/opt/ empuser 10.20.30.99 abc@123
我们可以将上面的bash命令修改为
Sample: ksh Script.ksh Employee.txt /home/opt/ empuser 10.20.30.99 ********
并读取脚本内的值?
Script Content:
var1 = $1
var2 = $2
var3 = $3
varpassword = $4
..... reading password and running sftp command
答案1
如果您键入命令,您键入的内容将保留在屏幕上。您可以使用tput
尝试删除上面的行。
#!/bin/bash
sleep 5
tput cuu 1
echo "Running: $0 $1 $2 $3 ********* "
sleep 5
如果你的终端保证足够宽并且你的提示足够短,这可能会起作用。
或者直接用 清除屏幕clear
。
但密码仍会显示在 中ps -ef
。在命令行上设置密码通常是一个坏主意,特别是对于长时间运行的程序。例如,您可能想了解如何ssh
隐藏其秘密。