如何将文本修改应用于bash特殊变量

时间:2019-05-01 07:56:37

标签: bash variables data-conversion capitalize

我有bash脚本,该脚本使用bash特殊变量(例如$ 1,$ 2等)接受输入参数。

我想在$ 2上使用sed进行一些文本修改,并将最终结果传输到$ 2。我该如何实现?

或者,我只想将$ 2中的文本格式化为大写形式,即Bar,Neo,Me等。无论它们提供给我的格式是bar,nEO,ME还是要将此值保留为$ 2变量。 / p>

main.sh
echo "${2^}"

./main.sh me nEO --> NEO -expected is-> Neo

为此我使用了${2^},但仅在bar情况下成功了

2 个答案:

答案 0 :(得分:3)

使用bash:

declare -c string="nEO"
echo "$string"

这会将第一个字符转换为大写,并将所有其他字符转换为小写。

输出:

Neo

答案 1 :(得分:1)

我更喜欢Cyrus的解决方案,但这是替代方案。

a=nEO
b=${a,,}   # neo
echo ${b^} # Neo