我需要使用
来使用我的bash脚本没有参数
./script.sh
路径参数(经典参数,将保存为var到var = $ 1)
./script.sh /root/home/dir/
使用switch -a(带有自己的参数)
./script.sh -a picture.jpeg
或两者合并
./script.sh -a picture.jpeg /root/home/dir/
我有这样的事情:
while getopts ":a:" opt; do
case $opt in
a)
I_ARGUMENT=$OPTARG
echo "A ARGUMENT IS: $OPTARG"
;;
:)
echo "-a requires argument"
;;
esac
done
然后对于路径参数这样的事情:
if [ -z "$1" ]
then
:
else
PATH="$1"
fi
这显然不能很好地(完全没有效果)在一起。你能帮我把这两件事结合起来吗?谢谢。
答案 0 :(得分:2)
这样的事情
pathToHomeSlashDir=~/dir/ #default value will be home/dir/
if [ $# -gt 0 ]
then
while [ $# -gt 0 ]
do
case "$1" in
-a)
if [ $# -gt 1 ]
then
image="$2"
shift
else
echo "Please insert -a argument"
exit
fi
;;
*)
pathToHomeSlashDir="$1"
;;
esac
shift
done
fi
您只需要处理变量