我写了一个很长的 bash 脚本,用于在 android 上配置 SSH daemom 等。问题是,它变得太长了,有时其他用户或我可能只想配置脚本必须提供的某些方面。我不想在每次运行时都检查整个脚本,而是想添加一些选项来指示将要运行的内容,但在未指定任何内容时仍然能够运行整个脚本。
类似于:
myscript -d -o -p
或者
myscript -dop
可以找到脚本here .我认为在这里发布太长了。
基本上它像这样分成 5 个 block :
#!/system/xbin/bash
echo "---SECTION-ONE---"
read
if test then
while true
do
我查找了使用 getopts 的方法,但是如果没有一个与我正在做的事情相匹配的例子,我还不能完全理解它。这就是我在这里发帖的原因 ;) 一如既往地感谢您的任何意见。
最佳答案
您可以将脚本的不同主体分解为可在出现选项时调用的函数。
#!/bin/bash
printing_stuff (){
echo "---SECTION-ONE---"
}
test_input (){
read -p "Enter something: " input
if [[ $input == something ]]; then
echo "test successful"
# do some stuff
fi
}
body_loop (){
while true; do
echo "this is the loop"
# some stuff
break
done
}
if [[ $@ ]]; then
while getopts "dop" opt; do
case $opt in
d)
printing_stuff
;;
o)
test_input
;;
p)
body_loop
;;
\?)
;;
esac
done
else
printing_stuff
test_input
body_loop
fi
[[ $@ ]]
测试仅在脚本参数存在时运行 getopts
循环,否则运行所有内容。
关于android - 在运行时传递参数时使用 getopt(s) 运行脚本的特定部分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25558103/