问题标签 [getopts]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
bash - Using getopts inside a Bash function
I'd like to use getopts
inside a function that I have defined in my .bash_profile.
The idea is I'd like to pass in some flags to this function to alter its behavior.
Here's the code:
When I invoke it like this:
I get this output:
What's wrong? I'd like to get the value bc
without manually shifting and parsing. How do I use getopts
correctly inside a function?
EDIT: corrected my code snippet to try $OPTARG, to no avail
EDIT #2: OK turns out the code is fine, my shell was somehow messed up. Opening a new window solved it. The arg value was indeed in $OPTARG.
linux - BASH getopts 可选参数
我正在尝试创建一个 shell 脚本,它有两个强制参数(arg1、arg2),然后是一个可选的 -b 标志以及用户选择使用该标志时需要遵循的参数。
让我解释:
这是一个安装脚本,它利用 GIT 从 Github 存储库中获取应用程序。用户在终端 f.ex. 中键入:
并且脚本从此存储库中获取主分支的一个实例。然而,用户是否应该选择使用可选的 -b 标志,这意味着他/她想要指定要获取的分支,例如开发分支。这意味着用户可以执行以下操作:
我也很好奇如何让脚本工作,这样用户在“new”参数和“app_name”参数之前输入 -b flag+branch_name 就无关紧要了。但这也许不是目前最重要的事情。
要知道我到底要构建什么,这里有一个指向我当前脚本的链接,它只接受两个强制参数并且只获取主分支:My Super Cool Artisan Executable Script
PS:我一直在尝试使用 getopts 的许多示例,我在 Stackoverflow 和其他博客上都找到了这些示例,但没有一个可以帮助我完全使其工作。因此,我在这里向你们所有伟大的人寻求帮助。
非常感谢,请务必查看我的Linux Mint / Ubuntu - Post Install Script for only cool people(你们和那些从 Windows/Mac 切换到 Linux 的人)
问候, 维利
bash - getopts 无法识别问号
我目前正在这样的脚本中解析选项:
每个解析选项和标志都有效 - 除了这个:? )
. 因此,如果我用类似的东西调用我的脚本,./MyScript hjrfgdskjgh
它会正确通过循环——尽管它应该在最后一行用? )
.
我还尝试从":ia"
或使用\?
或删除引号. )
- 没有任何效果!我做错了什么??
bash - make getopts error when optionstring does not start with a dash
我正在编写一个脚本,该脚本将 getopts 用于需要参数和一些不需要参数的选项。如果任何开关不以“-”开头,我希望 getopts 退出并出现错误,而不是简单地停止解析选项并继续。因此,如果这是我的 getopts 行:
我这样称呼脚本:
脚本在“我”处停止解析,其余开关被忽略。我希望它在到达“我”时出错,因为它不是以“-”开头的。我怎么做?
bash - 有人可以用简单的英语解释这个简短的 getopts bash 脚本吗?(UNIX)
这是脚本:
所以我真正理解的唯一部分是 shift $(($OPTIND-1))
。有人可以解释其余的实际在做什么吗?上面是什么意思file=$1
?这是否意味着现在将“文件”一词分配给$1
列的值?
通过“$1 列”,我指的是这样一个事实,即在运行命令时,$0
分配给命令的实际名称,$1
是给出的第二个选项/参数,并且$2
是给出的第三个选项/参数。例如,如果您键入:
然后$0
是 rm。-r
将是$1
。并且directory/randomfiles
会是$2
。那有意义吗?
总结一下:
file=$1
顶部是什么意思,有什么意义?- 代表什么
$opt
,它是什么意思? - 这是什么
iopt=1
意思,它有什么意义? - 如果我想像这样使用我的脚本:
MyScriptName -r [InsertFilenameHere]
我该怎么做?
我知道我在问很多问题-如果您能回答我的一些问题,或者指出我正确的方向,我将不胜感激!
提前致谢。
bash - getopts 没有解析我的命令行选项
我正在运行 bash 4.2 版,并且正在尝试使用内置命令解析命令行参数getopts
,
但是getopts似乎没有正确解析它,如果-s
不是第一个参数,它不会被解析
-s
未解析:
这个得到了解析
脚本在这里:
bash - 用作 wc 命令的 Bash 脚本
我正在尝试使用getopts
它来创建一个脚本,它可以作为wc
. 问题是当我同时使用两个开关时会卡住。剧本:
当我用它运行这个脚本时,./script.sh -l file
它可以工作,但是当我使用./script -wl file
它时,它就会进入一个无限循环。谁能解释发生了什么以及如何解决它?
linux - bash getopts 无法识别参数
我们有一个getopts
脚本来检索如下参数
我们收到一个在另一个脚本中解析并传递给getopts
脚本的参数,它适用于单个条目,例如12345,-d somedesc -l somelabel
但是,我们收到多个条目,例如12345,-d somedesc -l somelabel:6789, -d anotherdesc -l anotherlabel
,并且正在使用loop
和awk
进一步拆分参数,在这种情况下,getopts
即使正确传递了 OPTIONS,也不会触发。
有什么原因getopts
无法识别 OPTIONS 吗?
bash - 一起使用 getopts 和 ${1}
我正在尝试编写一个可以同时使用 ${1} 和 getopts 选项的脚本。我希望它使用使用行工作:
打印:
我试过了
这无法让我同时访问 ${1} 并检测到 -a 选项被同时使用。有没有办法同时使用这两种方法?我想避免将测试字符串变成另一个 getopts 选项。
bash - 使用值列表解析标志
我正在创建一个涉及解析参数的 bash 脚本。用法是:
使用getopts
我能够解析-a
并-b
获取它们各自的值ARG_1
和ARG_2
. 当且仅当用户将-c
其作为最后一个参数时,我还能够获取-c
并创建一个包含所有值的列表LIST_OF_ARGS...
。
但我不想强迫用户-c
作为最后一个标志插入。例如,如果可以以这种方式调用脚本,那就太好了:
这是我当前的代码: