我需要将两个数字添加到位置参数$ 1,并在它们之间有一个破折号,即“15-20”。它是从15到20的间隔,它必须是一个位置参数。我这样做:如何从一个位置参数创建两个变量?
#!/bin/sh
a=$(echo "$1" | sed 's/-/ /g')
echo $a
它打印: 所以我得把这些数字作为一个单独的变量,我需要这在将来的间隔。而不是= 15 20,它应该是a = 15和b = 20。我怎么能做到这一点?
我需要将两个数字添加到位置参数$ 1,并在它们之间有一个破折号,即“15-20”。它是从15到20的间隔,它必须是一个位置参数。我这样做:如何从一个位置参数创建两个变量?
#!/bin/sh
a=$(echo "$1" | sed 's/-/ /g')
echo $a
它打印: 所以我得把这些数字作为一个单独的变量,我需要这在将来的间隔。而不是= 15 20,它应该是a = 15和b = 20。我怎么能做到这一点?
随着/bin/sh
,使用read
和这里的文件。
IFS=- read a b <<EOF
$1
EOF
或者,使用参数扩展两次删除前缀/后缀。
a=${1%-*}
b=${1#*-}
为什么它必须是一个参数?您可以控制脚本,并且可以根据需要重新构造参数。将脚本的第一行设置为$ {@ // - /}',并将包含连字符的所有参数分成两个(或更多)参数。试验一下吧! –