我有一个 bash 脚本,我想这样调用它:
bash curl.sh http://www.google.co.uk/ -d Directory -a "Moz 123" -r http://localhost/
Run Code Online (Sandbox Code Playgroud)
我可以收集第一个参数(http://www.google.co.uk/),内容如下:
url=$1
while getopts p:d:a:r: opt; do
case $opt in
p) proxy=$OPTARG ;;
d) dir=$OPTARG ;;
a) ua=$OPTARG ;;
r) ref=$OPTARG ;;
esac
done
Run Code Online (Sandbox Code Playgroud)
但是,它没有接受其他参数。如果我删除“ http://www.google.co.uk/ ”作为第一个参数,它会选择 -arguments。
由于后勤原因,我无法设置第一个参数,例如“ http://www.google.co.uk/ ”和 -u 等。
你如何让它发挥作用?
小智 5
为什么不传递参数并用引号引起来?
例如
script.shl "http://www.google.com" "/var/www/test" "option 3"
Run Code Online (Sandbox Code Playgroud)
...然后您可以使用 $1 $2 $3 直接在脚本中访问它们。您仍然可以仅使用 if...else 来更改脚本的进程?
除非我误读了你的问题......