我正在尝试在 bash 中编写一个函数,该函数采用空格分隔的字符串并输出该字符串中的第一个单词。我试过了
function myFunc { a=$1; b=($a); echo ${b[0]};}
但与
myStr="hello world"
myFunc myStr
我没有输出。
如果我将上面函数定义中的 a=$1 替换为 a="hello world",那么我在应用时会得到预期的结果
myFunc
结果:你好
此外,如果我没有将 myStr 作为参数传递,而是直接传递“hello world”,它也可以:
myFunc "hello world"
结果:你好
我用感叹号和expr
结构尝试了各种间接方式,但无济于事。最后,以下似乎有效:
function el_index { alias a=$1; b=($a); echo ${b[2]};}
我想在这里收集所有其他可能的方法来完成与上述相同的事情。特别是,有没有办法完全绕过中间变量 a ,并在上面的函数体内的第二条语句中执行类似 b=(${$a}) 的操作?顺便说一句,建设
b=($a)
使用默认分隔符将存储在 a 中的字符串拆分为单词,该分隔符是单个空格。
谢谢!