如何捕获终端中写入的字符串(文本)并将其放入变量中

如何捕获终端中写入的字符串(文本)并将其放入变量中

如何捕获终端中写入的字符串(文本)并将其放入同一脚本(使用 sudo 运行)中的变量中。示例:

#!/usr/bin/env bash
read -p "Put your username: " UNAME
myusername="Value of UNAME"

或者如何从 bash 脚本获取非 root 用户的名称(echo $USER)使用 sudo并将其放入变量中

答案1

当您执行 时read -p <prompt string> <variable>,用户输入的字符串将存储在 中。在您的示例中,用户输入将存储在 中UNAME。如果您在其他地方需要此输入,则只需使用 即可$UNAME。没有理由将值转移到myusername,您可以直接read进入myusername,或者UNAME稍后在脚本中使用。

至于第二个问题,没有一种统一的方法来获取非 root 用户。有几种方法适用于不同的发行版,请参阅这个 stackoverflow 问题,但这取决于你运行的发行版和版本以及你的配置方式。如果你可以调用sudo 里面脚本并预先获取 $USER,这样也可以,但是在脚本执行期间会提示用户输入密码,这可能并不可取。

相关内容