除了bash脚本中的选项之外,如何获取变量?

时间:2015-11-24 14:11:23

标签: linux shell

我制作了一个脚本,用法应该是:

bash test.sh -r chr1:1000-2000 -n 123 test_1.fq test_2.fq

我希望在输入结束时获得输入test_1.fq test_2.fq

但是当我在脚本$*中使用input=$*时,我得到了整个输入-r chr1:1000-2000 -n 123 test_1.fq test_2.fq

其他选项(-r -n)通常使用getopts获得。

我怎么能只保留最后两个字?

2 个答案:

答案 0 :(得分:1)

只需shift所有参数,直到你只有两个:

while (( $# > 2 )); do
   shift
done

echo "$@"

从链接页面:

  

shift内置命令用于“移位”位置   如果没有给出数字,则给定数字n或1的参数。

另请注意,使用给定参数的方式是$@,而不是$*

答案 1 :(得分:1)

使用shift:

http://tldp.org/LDP/Bash-Beginners-Guide/html/sect_09_07.html

删除最左侧的参数。如果您知道需要删除的号码,那么这就是解决方案。如果你知道转移后你需要多少,那么另一个答案将起作用:)

$ ./a.sh 1 2 3 4 5 6 7
+ shift 4
+ echo 5 6 7
5 6 7