gpt4 book ai didi

linux - shell 脚本 : cat configuration archive

转载 作者:太空宇宙 更新时间:2023-11-04 09:46:00 25 4
gpt4 key购买 nike

现在在 bash 脚本中我有这个:

firstParam=$1
secondPara=$2
if [ -n $firstParam ] ; then 
    if [ $firstParam != "--x" ] ; then
        echo "Incorrect"
    else
       if [ -n $secondParam ]; then
           cat $secondParam
       else
           echo "Need file"
       fi    
   fi
fi

此脚本应打开配置文件并仅显示未注释的行(#、; 或/)。第一个参数也不是强制性的。你能帮我吗?我不知道我怎么能说第一个参数不是必需的,如果你不把他也可以做​​ CAT。我的意思是您可以使用“name.sh file.conf”或“name.sh --x file.conf”执行脚本

PS:第一个参数是一个函数,如果您使用“--x file.conf”运行脚本,它将执行“cat -n”。

最佳答案

这是我通常处理争论的方式。我认为这对您来说是一个很好的基础:

XPARAM=false
OPARAM="default value"
FILENAME="/dev/stdin"

while [ $# -gt 0 ]; do
case "$1" in
-x|--x-long-form)
XPARAM=true
;;
-o|--option-with-arg)
shift
OPARAM="$1"
;;
-h|--help)
echo "usage: $0 [-x] [-o arg] FILENAME"
exit #Don't need to do more when the user admits confusion ;-)
;;
*)
if [ "$1" == "" ]; then
echo >&2 "I hate you"
exit 1
fi
FILENAME="$1"
;;
esac
shift
done

if $XPARAM; then
# Handle -x
fi

cat "$FILENAME"

这将选项的处理与其操作的逻辑以及它们的解释方式分开,例如是否需要或相互排斥。这也很好,因为可以将 while ... case ... shift 内容复制粘贴到一个新程序中,该程序以完全不同的方式处理其 args — 只有 case 分支需要更改。

关于linux - shell 脚本 : cat configuration archive,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16258530/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com