Questions tagged «options»

将-l或--word之类的选项传递给命令,或在脚本中解析它们。

1
为什么“#!/ bin / sh -a”中的-a影响sed而“ set -a”却不影响?
如果我运行以下.sh文件: #!/bin/sh -a echo "a" | sed -e 's/[\d001-\d008]//g' 结果是一个错误: sed:-e表达式#1,字符18:无效的范围结尾 但是,如果我运行以下.sh文件: #!/bin/sh set -a echo "a" | sed -e 's/[\d001-\d008]//g' 它运行没有错误。第二个代码不是应该等同于第一个吗?为什么在第一个错误?

5
如何检测到getopts没有传递任何选项?
我有此代码- #getoptDemo.sh usage() { echo "usage: <command> options:<w|l|h>" } while getopts wlh: option do case $option in (w) name='1';; (l) name='2';; (h) name='3';; (*) usage exit;; esac done print 'hi'$name 当我运行时bash getoptDemos.sh(不带选项),它将打印hi而不是调用函数usage。当给出w,h和l以外的选项时,它将调用用法。然后,如果未指定任何选项,它将无法正常工作。 我已经尝试使用?,\?,:到位的*,但我无法实现我想要的。我的意思是所有的docs上getopt说它使用?。 我究竟做错了什么?
19 bash  shell  options  getopts 

3
为什么带引号的变量中的选项会失败,但不带引号的情况下会起作用?
我了解到我应该在bash中引用变量,例如“ $ foo”而不是$ foo。但是,在编写脚本时,我发现了一种情况,它不带引号但不带引号就可以工作: wget_options='--mirror --no-host-directories' local_root="$1" # ./testdir recieved from command line remote_root="$2" # ftp://XXX recieved from command line relative_path="$3" # /XXX received from command line 这个作品: wget $wget_options --directory_prefix="$local_root" "$remote_root$relative_path" 这个不会(注意$ wget_options周围的双引号): wget "$wget_options" --directory_prefix="$local_root" "$remote_root$relative_path" 这是什么原因呢? 第一行是好的版本;还是我应该怀疑某个地方存在隐藏的错误导致此行为? 通常,在哪里可以找到好的文档来了解bash及其引用的工作原理?在编写此脚本期间,我觉得我开始在反复试验的基础上工作,而不是理解规则。



4
为什么ls接受重复的开关?
我很好奇- ls -l和之间有区别ls -lllllllllllllllllllllllllllll吗? 输出似乎是相同的,我对为什么ls允许重复开关感到困惑。这是大多数命令中的标准做法吗?
16 ls  options 

2
为什么可以省略选项和参数之间的空格?
例如: xargs -n 1 是相同的 xargs -n1 但是,如果您查看手册页,该选项将列为-n max-args,这意味着应该保留该空间。缩写形式-n max-args没有任何意义。 其他许多Linux实用程序也会发生这种情况。 在Linux中这叫什么?是否所有实用程序都支持缩写形式(但切勿在手册页中对其进行文档化)?
16 options 

2
ls --hide =和ls --ignore =的语法
ls --hide并ls --ignore提供了省略通过--ignore=零件后设置的正则表达式定义的文件的可能性。后者确保不会通过禁用此选项-a, -A。该命令man和info页面提到了正则表达式。 问题:ls --hide=和中支持哪些通配符或正则表达式ls --ignore=。 我发现它* $ ?以及POSIX Bracket Expressions似乎都受支持。但这似乎并非一直都能正常工作,对我来说更像是反复试验的游戏。我在这里错过了重要的事情吗?

1
您是否需要在fstab中指定“默认”选项?
在凯旋门上维基fstab指定的选项/是defaults,noatime,但在我安装的默认fstab用的选项创建的rw,relatime。该拱门维基覆盖atime问题。我很好奇的是该defaults选项。的man页面显示mount: 默认值 使用默认选项:rw,suid,dev,exec,auto,nouser和async。 请注意,所有默认安装选项的实际设置取决于内核和文件系统类型。有关更多详细信息,请参见本节的开头。 仅在defaults提供选项时才使用默认选项,还是在所有情况下都使用默认选项?我需要defaults我的fstab吗?
15 fstab  options 

2
标志,选项和参数之间有什么区别?[关闭]
已关闭。这个问题是基于观点的。它当前不接受答案。 想改善这个问题吗?更新问题,以便通过编辑此帖子以事实和引用的形式回答。 3年前关闭。 ls -a(我考虑-a一种选择) sudo -u username(-u=选项,username= arg) chmod 664 my-dir(664=选项,my-dir= arg) 除了想到目录清单时,我想不出一个可能说“这是一个标志”的示例: -r--------. 1 david david 3344 May 19 17:48 611056.pdf 这为所有者设置了“读取标志”,仅此而已。是什么阻止我将其称为“读取选项”? 我主要使用DocBook XML编写和编辑技术文档,并且正在寻找差异的解释,该差异应尽可能一致和准确。但是,我已经看到一种模式形成: 标志通常是布尔值。例如,setenforce 0 选项有助于定义命令的行为方式。有些可能是可选的。 参数告诉命令要操作的对象。 我可以看到自己将标志和选项结合在一起(某些选项可能有十二个可能的值,但布尔值只有两个)。参数看起来足够不同以保持原样。

3
头/尾的负参数
这个问题的变体当然已经在不同的地方被问过几次了,但是我试图M从文件中删除最后几行而没有运气。 在第二个最投票的答案在这个问题建议做以下摆脱在文件的最后一行: head -n -1 foo.txt > temp.txt 但是,当我在OSX和Zsh中尝试该操作时,我得到: head: illegal line count -- -1 这是为什么?我如何删除M 最后一个行和在第一个 N给定文件的行?

3
rm -f选项的真正意义是什么?
通过阅读GNU coreutils手册页中的rm,其中一个选项是-f,根据手册, -f, --force ignore nonexistent files and arguments, never prompt 现在,我进行了一些测试,并证明了如果我使用类似 rm -f /nonexisting/directory/ 它不会抱怨。 有人可以从这种选择中真正获得什么? 再加上使用“删除目录”的最常见示例,rm例如 rm -rf /delete/this/dir 该-r选项有意义,但是-f?
14 rm  options  coreutils 

3
rm -P的目的是什么?
rm当我遇到此选项时,我正在阅读手册页: -P Overwrite regular files before deleting them. Files are overwritten three times, first with the byte pattern 0xff, then 0x00, and then 0xff again, before they are deleted. 我想-P是为了彻底删除文件,但不是将所有字节设置为足够0xff还是0x00不够?为什么它必须在两次三下之间切换?
11 rm  options 


1
使用getopts为一个选项提供两个参数
在下面的代码中,当我给出选项时,r则getopts需要一个参数: while getopts ":hr::l:" opt; do case $opt in r ) echo "Run Numbers - argument = $OPTARG " ;; l ) echo "Latency range - argument = $OPTARG" ;; h ) helptext graceful_exit ;; * ) usage clean_up exit 1 esac done 但是我需要在-r选项之后传递两个参数,而不是一个。是否有捷径可寻?

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.