将 bash 字符串操作的输出分配给变量

Jam*_*ton 1 bash sed ubuntu-16.04

在 Ubuntu 16.04 上,我有一个以 root 身份运行的 bash 脚本。我想从用户的输入中删除所有空格,并将修剪后的字符串分配给一个变量。

read -p "Enter username: " USERNAME
echo "$USERNAME" | sed s/' '/''/g
TRIM="$USERNAME" | sed s/' '/''/g
echo $TRIM
echo "Done"
Run Code Online (Sandbox Code Playgroud)

这是一些示例输入和输出:

输入用户名:hjkl
hjkl

完毕

$TRIM 为空。
我需要做哪些更改才能让 $TRIM 包含结果?

Bar*_*mar 5

使用$()捕捉命令的输出。

trim=$(echo "$USERNAME" | sed 's/ //g')
Run Code Online (Sandbox Code Playgroud)

但是,您不需要为此使用命令,您可以使用bash 参数扩展运算符进行替换。

trim=${username// /}
Run Code Online (Sandbox Code Playgroud)

PS 不要使用大写的变量名,它们通常是为环境变量保留的。