我试图在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