我知道我可以通过这样做来完成标题中的要求:
input=abcd
input=${input^^} #makes uppercase
echo ${input:0:2} #gets first two letters
我想知道在一行中执行这两个操作的正确语法是什么?
declare -u input=abcd
echo "${input:0:2}"
参见手册中的declare
。
这并不能准确地实现您对的要求
获取字符串的前两个字母,并使其大写
相反,它使值大写,然后获得前两个字母。
不声明数组,仅使用参数扩展:
echo $( a=abcd; b=${a:0:2} && echo ${b^^} )
其中:
b=${a:0:2}
正在获取子字符串
${b^^}
正在对该子字符串进行大写;echo(在命令替换内(返回
屏幕上的回波(第一个(打印