从变量中删除空格

4
我希望能在Linux Shell中从一个变量中移除空格并在终端上输出。以下是我的代码:

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

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

1
最后一个命令应该是这样的 echo $fname | sed "s/ /g" - sumitya
3个回答

3

你不能仅仅调用一个变量(将其看作字符串值容器),你需要使用echo命令:

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

1
需要回显 $fname:
echo $fname | sed "s/ //g"

1
使用bash
read -p "Enter your full name: " fname
echo "${fname// /}"

表单${fname// /}是bash的模式替换的一个例子。它通常看起来像${variablename//old/new},并且它可以在variablename中找到所有出现的old模式,并将它们替换为new。在我们的例子中,old是一个空格,new是一个空字符串。
POSIX不需要模式替换,例如,在debian-like系统上,它不能在dash(即/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

请注意,这将在 bash 中工作,但不适用于 dash(Debian / Ubuntu 的 /bin/sh)或一般的 POSIX shell。 - nwk

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接