考虑以下任务:使用一行命令将所有转换为大写字母的用户名保存在名为USERNAMES的bash数组中。使用bash变量扩展进行大写字母转换。
如果不是因为一行的限制,我将使用
USERNAMES=($(ls /home)) # simplified for purposes of this question, returns (user1 user2 ...)
USERNAMES=(${USERNAMES[*]^^}) # must return (USER1 USER2 ...)
但是所有试图将第一个赋值语句嵌套到变量扩展(如USERNAMES=${($(ls /home))^^}
或类似变量)的尝试都会导致“bad substitution”错误。我使用的是bash 4.4.20(1)-release。
1条答案
按热度按时间szqfcxe21#