从变量中删除空格
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
我想从 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