从variables中删除空格

我想从Linux Shell中的variables中删除空格,并在terminal上回显。 以下是我的代码:

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

当我运行代码时,显示命令未find。

你不能只调用一个变量(把它看作只是一个字符串值容器)。 你需要echo它:

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

需要echo $ 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是空格, new是空的字符串。

模式替换不是POSIX所必需的,例如,在dash (在debian-like系统上是/bin/sh下不起作用。

使用任何POSIX shell

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

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