shell - 如何从一个位置参数生成两个变量?

标签 shell unix

我需要将两个数字添加到位置参数 $1,它们之间有破折号,即“15-20”。它是一个从 15 到 20 的区间,它必须是一个一个位置参数。我这样做了:

#!/bin/sh
a=$(echo "$1" | sed 's/-/ /g')
echo $a

它打印: 15 20 我将来需要这个作为间隔,所以我必须将这些数字中的每一个作为单独的变量。而不是 a = 15 20,它应该是 a = 15 和 b = 20。我怎样才能做到这一点?

最佳答案

使用 /bin/sh,使用 read 和此处文档。

IFS=- read a b <<EOF
$1
EOF

或者,使用两次参数扩展来删除前缀/后缀。

a=${1%-*}
b=${1#*-}

关于shell - 如何从一个位置参数生成两个变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37510331/

相关文章:

linux - Bash 文件名前缀替换

linux - 如何压缩目录中大于一定大小的文件?

linux - bash 脚本计算错误

regex - 如何在以下命令中将 bash 变量通过管道传输到 GREP 正则表达式中?

linux - 替换制表符分隔文件linux中封闭字符串中的制表符

java - 如何从 Java 程序返回一些值给 shell?

shell - 如何在linux df命令中选择特定列

c - 为什么 perror 函数会返回成功值?

unix - 无法创建 .vim 目录

shell - 使用自定义排序顺序对 Unix 中的字母数字字符串进行排序