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

変数は、1つまたは複数の値を保持する、記号的な意味で正しく選択された場合の名前です。質問がシェルスクリプトでの変数の使用に固有の場合は、このタグを使用します(プログラミング言語の変数について質問する場合は、おそらくStackOverflowで質問する必要があります)

1
Linux:ローカル変数のsetコマンド
ローカル/環境変数とエクスポート/設定コマンドを理解しようとしています。 $ set FILEM="razrax" $ echo $FILEM $ FILEN="test" $ echo $FILEN test echo $FILEM空の文字列を返す理由を説明してください
9 bash  shell  variable 

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

1
ワイルドカードで割り当てられた変数のパラメーター展開
現在のフォルダー(MA502)に2つのファイルがあり、その名前は- MA502_TAAGGCGA-TCGCAGG_L001_R1_001.at.fastq MA502_TAAGGCGA-TCGCAGG_L001_R2_001.at.fastq MA503、MA504などのフォルダがたくさんあるので、それらを繰り返し処理します。 ワイルドカードを使用して変数名を割り当てます- Forward=*R1*.at.fastq Reverse=*R2*.at.fastq これらのファイルをスクリプトで処理し、出力をに置き換え.atて.atqt、最終的な名前が次のようになるようにします- MA502_TAAGGCGA-TCGCAGG_L001_R1_001.atqt.fastq MA502_TAAGGCGA-TCGCAGG_L001_R2_001.atqt.fastq 私は試した awk 'script' $Forward > ${Forward/.at/.atqt} 私の最終的なファイル名は次のようになります- *R1*.atqt.fastq だった私の期待の代わりに MA502_TAAGGCGA-TCGCAGG_L001_R1_001.atqt.fastq UNIXでは必要に応じてすべてを学んだので、変数名がどのように処理されるのかわかりません。どんな助けでもありがたいです!

6
テスト後に最後の終了ステータスを維持する方法
$?テスト後に最後のコマンドの終了ステータス()を変更しないでおくことは可能ですか? 例えば、私はしたいと思います: command -p sudo ... [ $? -ne 1 ] && exit $? 最後exit $?はsudo終了ステータスを返す必要がありますが、代わりに常に0(テストの終了コード)を返します。 一時変数なしでそれを行うことは可能ですか? さらに明確にする別の例: spd-say "$@" [ $? -ne 127 ] && exit $? この場合、最初のコマンドが見つかった場合にのみ終了します(終了コード!= 127)。そして、私は実際のspd-say終了コードで終了したいです(それはそうではないかもしれません 0)。 編集:私は、移植性を高めるためにPOSIX準拠のソリューションを好むことを忘れていました。 同じコマンドの代替手段を提供したいスクリプトでこの構成を使用します。たとえば、私のcrc32スクリプトを参照してください。 一時変数の問題は、他の変数を隠してしまう可能性があり、長い名前を使用しなければならないことを回避することです。

3
|の使用 $ variableからのパイプ文字は、それをbashの別の引数として扱います。それを脱出する方法?
私はこのようなbashスクリプトを持っています export pipedargument="| sort -n" ls $pipedargument しかし、それはエラーを与えます ls: |: No such file or directory ls: sort: No such file or directory に"| sort -n"渡された引数としての内容を扱っているようlsです。 通常のパイプコマンドとして扱われるように、どうすればエスケープできますか? 条件付きでを設定しようとしています$pipedargument。私はコマンドの異なるバージョンを条件付きで実行することができると思いますが、これを上記のように機能させる方法があるかどうか疑問に思いますか?

2
2つの完全に異なるものをgrepし、値を別々の変数に割り当てる最も効率的な方法は何ですか?
CentOS 6.x 2つの完全に分離された文字列のcurl、grepから出力を取得し、それぞれの値を変数として割り当てたいと思います。(出力をディスクに書き込まずに)これを行う最も効率的な方法は何ですか? 通常、次のようなスクリプトを作成することを考えます。 #!/usr/bin/env bash foo1=$(curl https://domain.com/file.xml | grep string1) foo2=$(curl https://domain.com/file.xml | grep string2) しかし、これは2つのパスを取得することになり、恐ろしく非効率的です。もっと良い方法はありますか?うまくいけば、より少ないパスを含むソリューションですか?

2
awkでシェル変数を使用する
これが私のスクリプトです(指定されたパターンを含むファイルを見つけるため): find . -type f \ -exec awk -v vawk="$1" '/'"$vawk"'/ {c++} c>0 { print ARGV[1]; exit 0 } END { if (! c) {exit 1}}' \{\} \; 引数付きのスクリプトを使用したい§: MyScript.sh pattern 私の問題は、$1変数をに入れることができないことawkです。 スクリプトをデバッグしようとすると bash -x MyScript.sh pattern これが出力です: + find . -type f -exec awk -v vawk=pattern '// {c++} c>0 …
8 bash  awk  variable 
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.