短命令解析:代码+shell

1、短命令解析:代码

如何使用代码解析-a 123 -b 456?可以使用getopt函数。

1.1 原型:

int getopt(int argc, char * const argv[], const char *optstring); 
extern char *optarg;  
extern int optind, opterr, optopt;

1.2 参数说明:

  • optstring的格式
    例:"ab:c::d::"
    (1) 单个字符,表示该选项Option不需要参数。
    (2) 单个字符后接一个冒号":",表示该选项Option需要一个选项参数Option argument。选项参数Option argument可以紧跟在选项Option之后,或者以空格隔开。选项参数Option argument的首地址赋给optarg。
    (3) 单个字符后接两个冒号"::",表示该选项Option的选项参数Option argument是可选的。当提供了Option argument时,必须紧跟Option之后,不能以空格隔开,否则getopt()会认为该选项Option没有选项参数Option argument,optarg赋值为NULL。相反,提供了选项参数Option argument,则optarg指向Option argument。
  • char *optarg
    当匹配一个选项后,如果该选项带选项参数,则optarg指向选项参数字符串;若该选项不带选项参数,则optarg为NULL;若该选项的选项参数为可选时,optarg为NULL表明无选项参数,optarg不为NULL时则指向选项参数字符串。
  • int optind
    下一个待处理元素在argv中的索引值。即下一次调用getopt的时候,从optind存储的位置处开始扫描选项。当getopt()返回-1后,optind是argv中第一个Operands的索引值。optind的初始值为1。
  • int opterr
    opterr的值非0时,在getopt()遇到无法识别的选项,或者某个选项丢失选项参数的时候,getopt()会打印错误信息到标准错误输出。opterr值为0时,则不打印错误信息。
  • int optopt
    -在上述两种错误之一发生时,一般情况下getopt()会返回’?',并且将optopt赋值为发生错误的选项。

1.3 示例

#include <stdio.h>
#include <unistd.h>

const char *str = "ab:c::d::";
void parse_arg(int argc, char*argv[]){
    int opt;
    const char *str = "ab:c::d::";
    printf("argc: %d\n", argc);
    while ((opt = getopt(argc, argv, str)) != -1)
    {
        printf("opt:%c, optarg:%s, optind: %d\n", (char *)opt, optarg, optind);
    }
}

int main(int argc, char *argv[])
{
    printf("hello world\n");
    parse_arg(argc, argv);
}

1.4 使用

PS Y:\work\Code\MyCode\getopt> .\getoptTest.exe -a -b host -ckeke -d haha
hello world
opt:a, optarg:(null), optind: 2
opt:b, optarg:host, optind: 4
opt:c, optarg:keke, optind: 5
opt:d, optarg:(null), optind: 6

2、短命令解析:shell

如何使用shell解析-a 123 -b 456?可以使用getopts指令。

2.1 命令示例

#!/bin/sh

#获取脚本参数
while getopts ":a:b:c::" opt;do
    case $opt in
    a)
    echo "a: $OPTARG"
    ;;
    b)
    echo "b: $OPTARG"
    ;;
    c)
    echo "c: $OPTARG"
    ;;
    *)
    echo "Unsupport: $OPTARG"
    ;;
    esac
done

2.2 使用

PS Y:\work\Code\MyCode\getopts> ./buildTest.sh -a 111 -b 222 -c 333 -d 444
a: 111
b: 222
c: 333
Unsupport: d

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: "User-local default" 选项是 IntelliJ IDEA 中的一个设置,它允许您在使用短命行时自定义默认配置。如果您在使用短命行时没有看到这个选项,可能是因为您的 IntelliJ IDEA 版本不支持它,或者您需要先启用它。 要启用 "User-local default" 选项,请按照以下步骤: 1. 打开 IntelliJ IDEA 并转到 "File" -> "Settings"。 2. 在左侧窗格中,选择 "Tools" -> "Command Line Tool Support"。 3. 在右侧窗格中,勾选 "User-local default" 选项。 4. 点击 "OK" 保存更改。 现在,当您使用短命行时,您可以使用自定义的默认配置。 ### 回答2: 在IDEA中,短命行(short command line)是指在命行工具中输入的简短命。在此情况下,“没有User-local default”表示短命行没有用户本地的默认设置。 通常情况下,IDEA提供了许多命行选项和参数,可以通过设置用户本地的默认设置来自定义这些选项和参数。用户可以根据自己的需求,定义一组默认的命行选项,以在使用IDEA时快速调用常用操作或自定义的特定功能。 然而,对于短命行来说,IDEA没有提供用户本地的默认设置。这意味着用户无法在IDEA中为短命行设置自定义的默认选项。相反,用户需要每次使用短命行时手动输入所需的命或选项。 这可能会增加一些使用IDEA的操作的时间和精力,因为用户需要每次都输入完整的命或选项。 不过,虽然IDEA中的短命行没有用户本地的默认设置,但是用户仍然可以利用IDEA提供的其他自定义功能来提高自己的工作效率。例如,可以创建自定义的代码片段、快捷键、模板或宏来执行常见的操作,以替代频繁使用的短命行。 总之,虽然IDEA中的短命行没有用户本地的默认设置,但用户仍然有其他方式来提高工作效率,减少重复性的命行输入。 ### 回答3: 在idea中的"short command line"指的是一种快捷命行操作方式,是为了方便用户快速执行指定的命或动作。然而,idea中的"short command line"并不具备用户本地默认设置的功能。 意思是说,idea中的"short command line"无法为每个用户单独设置默认值。通常情况下,"short command line"是针对整个idea应用程序而言的,无法针对每个用户的不同需求设定个人化的默认值。 这意味着,无论是哪个用户在同一台计算机上使用idea,"short command line"的默认设置都是统一的,并不会针对各个用户做个性化调整。 这样的设计可能是为了简化idea的配置和管理。对于团队合作的开发环境来说,统一的默认设置有助于减少配置的复杂度,并且可以确保用户之间的操作一致性。 然而,对于个人用户而言,可能会希望能够自定义"short command line"的默认设置,以适应自己的习惯和工作流程。尽管idea中的"short command line"没有提供用户本地默认设置的选项,但用户仍然可以通过手动更改配置文件或使用插件来实现自定义设置的目的。 综上所述,idea中的"short command line"功能虽然没有用户本地默认设置的选项,但用户仍可以通过其他方式实现自定义设置。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值