Bash 脚本帮助获取数字的第一个数字

Dav*_*oyd 2 centos shell-script

如何从数字中获取第一个数字?例如,25 - 仅从 25 中获取“2”。

这是我尝试过的:

echo -n "Enter age: "    
read age    
echo $(s:0:1)
Run Code Online (Sandbox Code Playgroud)

Fre*_*ddy 22

您使用了错误的变量,s而不是age使用大括号进行参数扩展${...}

read -p "Enter age: " age
echo "${age:0:1}"
Run Code Online (Sandbox Code Playgroud)


ImH*_*ere 6

最基本的和 POSIX 兼容的方式(假设没有符号)是:

echo "${age%"${age#?}"}"
Run Code Online (Sandbox Code Playgroud)

在某些 shell(bash、ksh、zsh)中:

echo "${age:0:1}"
Run Code Online (Sandbox Code Playgroud)

如果该值可能包含符号,请先将其删除:

$ age=+23
$ age=${age#[+-]}
$ echo "${age%"${age#?}"}"
2
Run Code Online (Sandbox Code Playgroud)