Bash 在shell脚本中将数字的最后一位设置为变量

Bash 在shell脚本中将数字的最后一位设置为变量,bash,shell,variables,pipe,Bash,Shell,Variables,Pipe,我有一个数字2014061200,我试图提取这个数字的一位(0),并将其设置为变量$STR,这样$STR将等于0,因为这是上述数字的一位 我制作了一个shell脚本,显示以下内容: $NUM=2014061200 $STR= $NUM | tail -c 2 echo $STR 但是,当我这样做时,$STR会得到一个空白,而不是预期的结果0。我是说当我打字的时候 echo$NUM | tail-c2,我确实得到了0的输出,但是如何将其输入到变量中呢 感谢使用参数扩展: num=20140612

我有一个数字
2014061200
,我试图提取这个数字的一位(
0
),并将其设置为变量
$STR
,这样
$STR
将等于
0
,因为这是上述数字的一位

我制作了一个shell脚本,显示以下内容:

$NUM=2014061200
$STR= $NUM | tail -c 2
echo $STR
但是,当我这样做时,
$STR
会得到一个空白,而不是预期的结果0。我是说当我打字的时候

echo$NUM | tail-c2
,我确实得到了0的输出,但是如何将其输入到变量中呢


感谢使用参数扩展:

num=2014061200
last=${num: -1}

-1
告诉bash从右侧提取一个字符。

使用参数展开:

num=2014061200
last=${num: -1}

-1
告诉bash从右边提取一个字符。

这里是另一个使用参数展开的变体,其中
${num}-1
是字符串的长度减去1,
${num:position:length}
是子字符串表达式:

${num:(${#num}-1):1}

下面是另一个使用参数展开的变体,其中
${num}-1
是字符串的长度减去1,而
${num:position:length}
是子字符串表达式:

${num:(${#num}-1):1}

请格式化您的代码。请格式化您的代码。值得指出的是,当使用负偏移量时,扩展中的嵌入空间非常重要。或者
${num:(-1)}
。值得指出的是,当使用负偏移量时,扩展中的嵌入空间非常重要。要么那样,要么
${num:(-1)}