String 检查字符串的最后一个字符
这种巴什主义有内置的POSIX等价物吗String 检查字符串的最后一个字符,string,bash,shell,sh,String,Bash,Shell,Sh,这种巴什主义有内置的POSIX等价物吗 my_string="Here is a string" last_character=${my_string: -1} 我一直看到这样的建议,但它们看起来像黑客 last_character=$(echo -n "$my_string" | tail -c 1) last_character=$(echo -n "$my_string" | grep -o ".$") 但是,也许POSIX shells的所有功能就是黑客 num=`echo $my_
my_string="Here is a string"
last_character=${my_string: -1}
我一直看到这样的建议,但它们看起来像黑客
last_character=$(echo -n "$my_string" | tail -c 1)
last_character=$(echo -n "$my_string" | grep -o ".$")
但是,也许POSIX shells的所有功能就是黑客
num=`echo $my_string | wc -c `
let num-=1
last=`echo $my_string | cut -c$num`
echo $last
假设:(这里是最后一个字符)是需要最后一个字符的字符串。希望这有帮助。如果你真的要这么做,只需POSIX即可:
my_string="Here is a string"
last_character=${my_string#"${my_string%?}"}
它实际上是从
$my_string
的开头删除$my_string
而不包含其最后一个字符,只剩下最后一个字符。如果您只需要检查最后一个字符是什么,然后对其值执行操作,则大小写。。。esac
construct是一种可移植的表达方式。如果输入字符串包含换行符,则会中断。谢谢,这仍然是一种黑客行为,但至少它是一种仅使用参数扩展的黑客行为@miken32-绝对是黑客风格,但比管道和调用其他命令要好。虽然它的通用性要差得多,但这是POSIX为您准备的。