【问题标题】:Setting last digit of a number to a variable in a shell script在shell脚本中将数字的最后一位设置为变量
【发布时间】:2014-07-29 23:16:11
【问题描述】:

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

我制作了一个 shell 脚本,显示如下:

$NUM=2014061200
$STR= $NUM | tail -c 2
echo $STR

但是,当我这样做时,$STR 出现空白,而不是预期的结果 0。我的意思是当我键入时

echo $NUM | tail -c 2,我确实得到了 0 的输出,但是如何将它放入变量中?

谢谢

【问题讨论】:

  • 请格式化您的代码。

标签: bash shell variables pipe


【解决方案1】:

使用参数扩展:

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

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

【讨论】:

  • 值得指出的是,在使用负偏移时,该扩展中的嵌入空间很重要。要么那个要么${num:(-1)}
【解决方案2】:

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

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

【讨论】:

    猜你喜欢
    • 2017-07-05
    • 1970-01-01
    • 2020-12-05
    • 2017-09-24
    • 1970-01-01
    • 1970-01-01
    • 2013-09-04
    • 2020-05-07
    • 2021-06-17
    相关资源
    最近更新 更多