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

前端之家收集整理的这篇文章主要介绍了在Bash中,如何访问函数中的命令行参数?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我试图在bash中编写一个函数,它将访问scripts命令行参数,但它们被替换为函数的位置参数。有没有任何方法函数访问命令行参数,如果他们没有明确传递?
# Demo function
function stuff {
  echo $0 $*
}

# Echo's the name of the script,but no command line arguments
stuff

# Echo's everything I want,but trying to avoid
stuff $*
我读的bash ref手册说这个东西被捕获在BASH_ARGV,
虽然它谈论“堆栈”很多。
#!/bin/bash

function argv {
    for a in ${BASH_ARGV[*]} ; do
      echo -n "$a "
    done
    echo
}

function f {
    echo f $1 $2 $3
    echo -n f ; argv
}

function g {
    echo g $1 $2 $3
    echo -n g; argv
    f
}

f boo bar baz
g goo gar gaz

保存到f.sh

$ ./f.sh arg0 arg1 arg2
f boo bar baz
farg2 arg1 arg0 
g goo gar gaz
garg2 arg1 arg0 
f
farg2 arg1 arg0

猜你在找的Bash相关文章