Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash 使用unix的-parameter定义变量输入_Bash_Shell_Unix - Fatal编程技术网

Bash 使用unix的-parameter定义变量输入

Bash 使用unix的-parameter定义变量输入,bash,shell,unix,Bash,Shell,Unix,我的问题很直截了当,但似乎我无法用谷歌找到答案:( 对于我编写的函数,如何使用-parameter为函数指定参数 例如,我为bash编写了这个.sh文件,但它需要5-6个输入,因此用户可能会搞乱订单。因此,如何使函数像以下那样运行: 函数-mabc@yahoo.com-d dataset.csv-f筛选器 而不必为$1、$2等按正确顺序写入所有参数 谢谢尝试使用getopts()。我想你遇到问题的原因是你的搜索词。你需要像选项、开关、和参数这样的东西,而不是参数和函数 下面是一个简单的例子 wh

我的问题很直截了当,但似乎我无法用谷歌找到答案:(

对于我编写的函数,如何使用-parameter为函数指定参数

例如,我为bash编写了这个.sh文件,但它需要5-6个输入,因此用户可能会搞乱订单。因此,如何使函数像以下那样运行:

函数-mabc@yahoo.com-d dataset.csv-f筛选器

而不必为$1、$2等按正确顺序写入所有参数

谢谢

尝试使用
getopts()
。我想你遇到问题的原因是你的搜索词。你需要像
选项
开关
、和
参数
这样的东西,而不是
参数
函数

下面是一个简单的例子

while getopts "h?vf:" opt; do
    case "$opt" in
        h|\?)
            show_help
            exit 0
            ;;
        v)  verbose=1
            ;;
        f)  output_file=$OPTARG
            ;;
    esac
done

听起来你需要的是getopt/getopts。#!/usr/bin/bash optget(){而getopts“a:b:”opt;do case“$opt”in a)out=“$OPTARG”;;b)out 2=“$OPTARG”;“esac done echo”测试如果我们得到$out。这一个$out2”}这确实接受了-a,但是-b自动变成了OPTARG。所以optget-a这个-b的输出也是:如果我们得到这个,测试一下。这个OPTARG你能帮忙吗?@yatici嘿,我真的说不出为什么它不工作(看起来应该是这样),而且我目前还没有访问linux终端(在工作中)。也许试着把它作为另一个问题发布?唯一的问题是仔细检查你写的b)和你写的a)完全一样。