タグ付けされた質問 「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 expression#1、char 18:無効な範囲終了 しかし、次の.shファイルを実行すると: #!/bin/sh set -a echo "a" | sed -e 's/[\d001-\d008]//g' エラーなしで実行されます。2番目のコードは最初のコードと同等であると想定されていませんか?最初のエラーはなぜですか?

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
引用符で囲まれた変数のオプションが失敗するのはなぜですか?
私は、bfooで変数を引用する必要があることを読みました。たとえば、$ 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とその引用がどのように機能するかを理解するための優れたドキュメントはどこにありますか?このスクリプトを書いている間、私はルールを理解するのではなく、試行錯誤のベースに取り組み始めたと感じています。




2
オプションとパラメーターの間のスペースを省略できるのはなぜですか?
例えば: xargs -n 1 と同じです xargs -n1 しかし、manページを見ると、オプションはとしてリストされています-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ブラケット式と同様に、サポートされているようだとわかりました。しかし、これは常に適切に機能するとは限らず、私にとっては試行錯誤のゲームです。ここで重要なものを見逃しましたか?

1
fstabで「デフォルト」オプションを指定する必要がありますか?
アーチのWikiは、上のfstab指定のオプションが/あることをdefaults,noatime、私のインストールで、デフォルトはfstabのオプションで作成されますrw,relatime。アーチのWikiは、カバー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 オプションは、コマンドの動作を定義するのに役立ちます。一部はオプションです。 引数は、操作するオブジェクトをコマンドに伝えます。 フラグとオプションを組み合わせて自分自身を見ることができました(一部のオプションには12個の値がありますが、ブール値には2つしかありません)。引数は、それ自体を維持するのに十分に異なって見えます。

3
rmの-fオプションの本当のポイントは何ですか?
のGNU coreutilsのマニュアルページを読むrmと、オプションの1 つがになります-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
ヘッド/テールへの負の引数
この質問の変種は確かにさまざまな場所で何度か尋ねられていますが、私はM運のないファイルから最後の行を削除しようとしています。 二番目に投票の回答で、この質問は、ファイルの最後の行を取り除くために、次のことをお勧めします: head -n -1 foo.txt > temp.txt ただし、OSXとZshでそれを試すと、次のようになります。 head: illegal line count -- -1 何故ですか?どのように私は削除することができM 、最後の行と最初の N与えられたファイルの行を?

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十分では?なぜ2つと3つを切り替える必要があるのですか?
11 rm  options 


1
getoptsを使用して1つのオプションに2つの引数を提供します
以下のコードでオプションrを指定getoptsすると、1つの引数が必要になります。 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オプションの後に、1つではなく2つの引数を渡す必要があります。これを行う簡単な方法はありますか?

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.