在Bash中,如何访问函数中的命令行参数?

前端之家收集整理的这篇文章主要介绍了在Bash中,如何访问函数中的命令行参数?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图在bash中编写一个函数,它将访问scripts命令行参数,但它们被替换为函数的位置参数。有没有任何方法函数访问命令行参数,如果他们没有明确传递?
  1. # Demo function
  2. function stuff {
  3. echo $0 $*
  4. }
  5.  
  6. # Echo's the name of the script,but no command line arguments
  7. stuff
  8.  
  9. # Echo's everything I want,but trying to avoid
  10. stuff $*
我读的bash ref手册说这个东西被捕获在BASH_ARGV,
虽然它谈论“堆栈”很多。
  1. #!/bin/bash
  2.  
  3. function argv {
  4. for a in ${BASH_ARGV[*]} ; do
  5. echo -n "$a "
  6. done
  7. echo
  8. }
  9.  
  10. function f {
  11. echo f $1 $2 $3
  12. echo -n f ; argv
  13. }
  14.  
  15. function g {
  16. echo g $1 $2 $3
  17. echo -n g; argv
  18. f
  19. }
  20.  
  21. f boo bar baz
  22. g goo gar gaz

保存到f.sh

  1. $ ./f.sh arg0 arg1 arg2
  2. f boo bar baz
  3. farg2 arg1 arg0
  4. g goo gar gaz
  5. garg2 arg1 arg0
  6. f
  7. farg2 arg1 arg0

猜你在找的Bash相关文章