微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Bash的新手 – 不断出现非法选项错误

我是ubuntu和bash脚本的新手,想知道为什么我在使用GetoPTS时会遇到这个错误.

这是我用来运行它的代码.

sh /home/ubuntu/Desktop/test.sh -f /home/u/Desktop/ -p 'TEST'

我想我正在调用脚本,它应该使用grap搜索我作为搜索词输入的术语.但由于某种原因,它没有.对于使用grep工作时我能做些什么的任何建议也将不胜感激,谢谢.

#!/bin/bash

valid=0
file_arg=""
display_help=""
column=""
pattern=""

while getopts f:d:s:m: opt
do
    case "$opt" in
        d)  display_help=$OPTARG
            ;;
        f)  file_arg=$OPTARG
            ;;
        c)  column=$OPTARG
            ;;
        p)  pattern=$OPTARG
            ;;
        *)  valid=1
            break
            ;;
    esac
done

if [ $valid -eq "0" ]
then
    if [ $pattern != "" ]
    then
        cat $file_arg | grep $pattern
    else
        cat $file
    fi
else
    echo -n "Usage: FILE -f <name> | COLUMN -> -c <name> | HELP -> -d | PATTERN -> -p <expression>"
fi

解决方法

在getopts中你没有指定p选项你只有f:d:s:m:options.

我认为你的意思是p而不是m,反之亦然.

它应该是f:d:s:m:p:或f:d:s:p:

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐