タグ付けされた質問 「arguments」

引数は通常、関数、プロシージャ、またはコマンドラインプログラムに渡される実際の値として定義されます。

3
コンマ区切りのリストを次のコマンドの引数として指定する方法
s1「、」で区切られた数値のリストを出力するスクリプトがあります1,2,3,4。ここで、これらの数値をs2引数としてスクリプトに指定し、s2がそれぞれで実行され、その結果が別々の行に出力されるようにします。たとえば、s2が数値を2倍する場合、これは私が探している結果です。 2 4 6 8 私が今やっていることは: s1 | xargs -d "," | xargs -n1 s2 でも馬鹿なやり方でやっているような気がします!だから私の質問は: それを行う適切な方法は何ですか? 私の解決策の私の問題は、xargsを2回呼び出し、入力を2回反復することです。これはもちろん、パフォーマンスの観点から見ると妥当ではありません。答えxargs -d "," -n1はいいようですが、それが1回だけ繰り返されるかどうかはわかりません。もしそうなら、あなたの答えでそれを確認してください、そして私はそれを受け入れます。ちなみに、Perlはまだ2度繰り返されており、Perlが多くのシステムに存在しない可能性があるため、Perlは使用しません。
9 pipe  xargs  arguments 

2
シェルで変数を間接的に展開する
bashシェルで変数を間接的に参照する必要があります。 基本的にmake書いてできることをしたいです$($(var))。 私は${$var}最も簡単な解決策であるものを使用しようとしましたbashが、このエラーが発生します: bash: ${$var}: bad substitution これを行う方法はありますか? 私は何をしようとしています(すべての引数反復処理することで$1、$2、$3反復変数を使用してプログラムに、...)を、私は間接せずにこれを行うことはできません。

2
bash処理後にパラメータからオプションを削除する方法
bashスクリプトを使用caseしshiftて、位置パラメーターのリストをウォークスルーし、フラグとオプションを引数で解析し、それらを検出してそれらを削除し、構文解析後にそれらを削除して、裸の引数のみを残して、後で残りの残りで処理されるのを見た覚えがあります。脚本。 たとえば、のコマンドラインの解析では、cp -R file1 -t /mybackup file2 -f最初にパラメータを確認し、ユーザーがによってディレクトリに降り-R、ターゲットを指定して-t /mybackupコピーを強制し-f、それらをパラメータのリストから削除することを要求したことを認識します。file1 file2残りの引数として処理するプログラム。 しかし、私はいつでも目にしたスクリプトを覚えている/見つけることができないようです。それができるようになりたいのです。私はさまざまなサイトをグーグルで検索して、調べた関連ページのリストを追加しています。 このWebサイトの質問では、「順序に依存しないオプション」について具体的に質問しましたが、単一の回答とそれがダッピングされた質問の回答のどちらも、オプションが通常の引数と混合されている上記のようなケースを考慮していません。個人が順序に依存しないオプションについて具体的に言及する理由。 以降bashに建てられた-S」getopts最初の非オプションの引数で停止するようだ、解決策として十分であるとは思えません。これが、Wooledge BashFAQのページ(下記を参照)が引数を再配置する方法を説明する理由です。しかし、引数リストが非常に長い場合に備えて、複数の配列を作成しないようにしたいと思います。 以来shiftパラメータリストの真ん中オフ個々の引数をポップサポートしていない、私は私が求めています何を実装するための簡単な方法は何かわかりません。 まったく新しい配列を作成せずに、パラメーターリストの途中から引数を削除する解決策があるかどうか知りたいです。 私がすでに見たページ: http://mywiki.wooledge.org/ComplexOptionParsing#Rearranging_arguments http://mywiki.wooledge.org/BashFAQ/035 bashシェルスクリプトでgetoptsを使用して長いコマンドラインオプションと短いコマンドラインオプションを取得する http://wiki.bash-hackers.org/scripting/posparams http://wiki.bash-hackers.org/howto/getopts_tutorial $ @の引数のbash引数のケース bashスクリプトで順序に依存しないオプションを実装する標準的な方法は何ですか? シェルスクリプトでスイッチをどのように処理しますか?
9 bash  arguments 

3
シェル:ifでパラメーター付きの関数を使用する
以下のコードを実行しようとしていますが、ifステートメントで関数を使用しようとすると、-bash: [: too many argumentsエラーが発生します。なぜそれが起こっているのですか? 前もって感謝します! notContainsElement () { local e match="$1" shift for e; do [[ "$e" == "$match" ]] && return 1; done return 0 } list=( "pears" "apples" "bananas" "oranges" ) blacklist=( "oranges" "apples" ) docheck=1 for fruit in "${list[@]}" do if [ notContainsElement "$fruit" "${blacklist[@]}" -a …

2
オプションの関数引数を検出(スカラー)
次のスクリプトについて考えてみましょう。 function alfa(bravo, charlie) { if (charlie) return "charlie good" else { return "charlie bad" } } BEGIN { print alfa(1, 1) print alfa(1, 0) print alfa(1, "") print alfa(1) } 結果: charlie good charlie bad charlie bad charlie bad Awkには、引数が提供されていないことを通知する方法がありますか?

2
バッシュのグロビングと引数の受け渡し
次の簡略化されたbashスクリプトがあります #!/bin/bash files=("$@") if [ "X$files" = "X" ]; then files=$HOME/print/*.pdf; fi for file in "${files[@]}"; do ls "$file"; done 引数(ファイル名)をパラメーターとして渡すと、このスクリプトは適切なファイル名を出力します。一方、引数を渡さない場合は、出力されます /home/user/print/*.pdf: No such file or directory この場合、ファイル名が展開されないのはなぜですか、どうすれば修正できますか?通常の "files = $ *"よりも優先されることを読んだので、files=("$@")and "${files[@]}"構文を使用していることに注意してください。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.