什么';这是一个bash字符串操作替换吗?

什么';这是一个bash字符串操作替换吗?,bash,scripting,Bash,Scripting,我在脚本中执行以下操作: ~/tmp$ cat quick.sh #!/bin/bash TEXT="Hello World" KEY=$(echo ${TEXT} | sed -r "s/(^[^ \t]+).+/\1/") echo ${TEXT} echo ${KEY} ~/tmp$ ./quick.sh Hello World Hello 如何使用BASH提供的工具从字符串中提取第一个单词?使用${param%%word} 也可以使用数组或位置参数作为临时占位符 TEXT='Hello

我在脚本中执行以下操作:

~/tmp$ cat quick.sh
#!/bin/bash
TEXT="Hello World"
KEY=$(echo ${TEXT} | sed -r "s/(^[^ \t]+).+/\1/")
echo ${TEXT}
echo ${KEY}
~/tmp$ ./quick.sh
Hello World
Hello

如何使用BASH提供的工具从字符串中提取第一个单词?

使用
${param%%word}


也可以使用数组或位置参数作为临时占位符

TEXT='Hello World'
tmp=($TEXT)         # must not quote the variable here
first=${tmp[0]}
second=${tmp[1]}


显然,我还要等8分钟才能给你打勾。同时,我该如何做相反的事情(删除第一个单词)?
var=“Hello World”;echo“${var##*}”
。至少,请参阅答案中提供的文档。@AbhijeetRastogi我只“看到”了答案。您完全正确。@AbhijeetRastogi您的回答给出了最后一个匹配的单词,我想知道如何匹配除了第一个单词以外的所有单词。
var=“Foo Hello World”;再次从答案中的链接回显“${var#*}”
。分配文本的工作太多:
TEXT=“Hello World”
——无需调用echo@glennjackman没错,我只是用echo替换了我正在使用的命令。我明白你的意思。。。也许您可以将代码块分成两部分,并使用“或位置a参数作为临时占位符”将它们分开,以使其更清晰+1对于
集合--$TEST
:这是一个巧妙的技巧。
TEXT='Hello World'
tmp=($TEXT)         # must not quote the variable here
first=${tmp[0]}
second=${tmp[1]}
set -- $TEXT        # must not quote the variable here
first=$1
second=$2