从变量中删除空格

Remove white spaces from a variable

我想从 Linux Shell 中的变量中删除空格并在终端上回显它。 以下是我的代码:

echo "Enter your full name"
read fname
$fname | sed "s/ //g"

当我 运行 代码时,它显示找不到命令。

您不能只调用一个变量(将其视为一个字符串值容器)。您需要 echo 它:

echo $fname | sed "s/ //g"

需要回显 $fname:

echo $fname | sed "s/ //g"

使用bash

read -p "Enter your full name: " fname
echo "${fname// /}"

形式 ${fname// /} 是 bash 的 模式替换 的示例。它看起来更像 ${variablename//old/new},它会在 variablename 中找到模式 old 的所有匹配项,并将它们替换为 new。在我们的例子中,old 是一个 space 而 new 是一个空字符串。

POSIX 不需要模式替换,这将不起作用,例如,在 dash 下(即 /bin/sh类 debian 系统)。

使用任何 POSIX shell

read -p "Enter your full name: " fname
printf "%s" $fname
echo ""

例子

$ bash script
Enter your full name: Joe Bob Smith
JoeBobSmith