我试图将文件名大写设置为低于低于高,我不知道如何使用"和" shell编程中的操作。
spring-integration-amqp:4.2.5.RELEASE
我尝试了这三个if语句,但没有人运作良好。我该怎么办
答案 0 :(得分:0)
if [ "$temp" \> 'a' ] && [ "$temp" \< 'z' ] || [ "$temp" = 'a' ] || [ "$temp" = 'z' ] ; then
echo 'true 1'
fi
if [ "$temp" \> 'a' -a "$temp" \< 'z' -o "$temp" = 'a' -o "$temp" = 'z' ] ; then
echo 'true 2'
fi
答案 1 :(得分:0)
您正在比较字符串(文件名)和字符 如果您只想更改文件名的大小写,可以使用:
file="FileWithUpAndDowns"
echo "Tr gives ${file}" | tr '[[:lower:]]' '[[:upper:]]'
# or use typeset
typeset -u upperfile
typeset -l lowerfile
upperfile="${file}"
lowerfile="${file}"
echo "Low=${lowerfile}"
echo "Up=${upperfile}"
答案 2 :(得分:0)
bash glob模式了解POSIX字符类,因此要测试小写字符:
if [[ $temp == [[:lower:]] ]]; then ...
关键是让右侧不加引号让shell将其视为模式。如果它被引用,它将被视为文字字符串。请注意,[[ double bracket ]]
表单的此行为仅 。
但是,正如您所说,您想要交换案例,这很简单:
swapped=$( tr '[:lower:][:upper:]' '[:upper:][:lower:]' <<<"$str" )