加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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

发布时间:2020-12-15 22:52:32 所属栏目:安全 来源:网络整理
导读:我是ubuntu和bash脚本的新手,想知道为什么我在使用GETOPTS时会遇到这个错误. 这是我用来运行它的代码. sh /home/ubuntu/Desktop/test.sh -f /home/u/Desktop/ -p 'TEST' 我想我正在调用脚本,它应该使用grap搜索我作为搜索词输入的术语.但由于某种原因,它没有
我是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:

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读