Linux 将空格替换为-in shell变量

Linux 将空格替换为-in shell变量,linux,bash,shell,Linux,Bash,Shell,我想做的是,如果用户输入两个或多个单词,我想用-inPASTE变量替换空格 例如: read -p "enter some words :" $PASTE curl -s "example.com/${PASTE} | code continues 新粘贴: PASTE=default application 我该怎么做呢?请参见下面,使用“/”修饰符将“”替换为“-”。注意“read”命令中的拼写错误修复: PASTE=default-application 您可以使用sed替换:

我想做的是,如果用户输入两个或多个单词,我想用-in
PASTE
变量替换空格

例如:

read -p "enter some words :" $PASTE

curl -s "example.com/${PASTE} | code continues
新粘贴:

PASTE=default application

我该怎么做呢?

请参见下面,使用“/”修饰符将“”替换为“-”。注意“read”命令中的拼写错误修复:

PASTE=default-application

您可以使用sed替换:

    # Notice no '$' for PASTE.
read -p "enter some words :" PASTE
    # Replace ALL ' ' with '-'
PASTE=${PASTE// /-}
curl -s "website.com/${PASTE} | code continues

PASTE=$(echo$PASTE | tr“\n”“”)
这是否回答了您的问题?考虑<代码> -r>代码>选项>代码> Read 命令,然后在代码继续之前测试代码> > G-I 到<代码> CURL< /代码>以测试URL!在引号之间,不需要转义空格<与
tr
相比,code>sed有点过火
SOMEVAR=“someword”;SOMEVAR=“$(printf“$SOMEVAR”| tr'[:space:][''-')”;echo“$SOMEVAR”
@LéaGris using,
tr
也太过分了,使用
${var/-}
的解决方案更有效。@F.Hauri我想这只是因为
tr
是一个启动时间较长的外部程序。bash中的实际搜索和替换过程似乎非常缓慢。看见
echo $SOMEVAR | sed 's/\ /-/g'