問題タブ [command-substitution]
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.
scheduled-tasks - このステートメントはインタラクティブに実行されますが、スケジュールされた「at」からではありません
Ubuntu headless 15.10: 上記のステートメントは、開発中のスクリプトによって「at」でスケジュールされました。括弧内の比較が偽であるため、実行時に期待される iptables 挿入タスクを実行しませんでした (それを知るために、表示されていない else を使用しました)。ゼロの引用符を変更しようとしました...引用符なし、一重引用符、および二重引用符。'==' の前の値が 0 であることはわかっています。これは、上記のコマンドの前に、構築されたスケジュールされたコマンドに挿入したためです。
echo $(/sbin/iptables -w -L INPUT -n|grep --line-buffered -m 1 -c -w 66.128.56.213) >> /home/mydir/testfile.txt
そして、単純な 0 をファイルにエコーしました。そして、括弧内で 0 == 0 を試してみると、それも false として計算されます。2 つのゼロを比較して互いに同じにできない理由がわかる人はいますか? そして、どうすれば目的のステートメントを希望どおりに分岐させることができますか: 置換されたコマンドがゼロに等しい場合? コマンドラインとは異なり、期待どおりに正しく動作します。私の推測では、シェルの違いです。二重括弧を使用してみました。運がない。([]) も機能しません。== の代わりに eq を使用することもできません。
bash - スケルチ色なしのターミナルへのコマンド置換出力のストリーミング
コマンド置換の出力を変数に保存しながら、実行中に色で表示する方法はありますか? これは主にテスト/デバッグの目的であり、出力は正常に表示されません。
私がこれを行う場合:
...そして、これは近いですが、いくつかの点で私が望むものではありません:
- コマンドが別の方法で出力を端末にカラーで出力したとしても、それは白黒で印刷されます。
- 出力は、実行中のストリーミングではなく、コマンドの終了後にのみ表示されます。
色をスケルチせずに条件付きで出力を端末にストリーミングするにはどうすればよいですか?
git - git コマンド エイリアス内にバッククォートを入れ子にする
最後のタグ以降のすべてのコミットを表示する git エイリアスを作成しようとしています。私は過去に多く使用したこのSOの回答に基づいています。
git config --global alias.*
現在、次のようなコマンドでこれを試しています:
これにより、最後のタグ以降のすべてのコミット メッセージをレンダリングする「summary」という名前の新しい「コマンド」が登録されます。
ただし、 を実行するgit summary
と、git は次のエラー メッセージを表示します。
致命的: あいまいな引数 '`git': 不明なリビジョンまたはパスが作業ツリーにありません。
次のように、「--」を使用してパスをリビジョンから分離します。
'git <コマンド> [<リビジョン>...] -- [<ファイル>...]'
私にはgit describe --tags --abbrev=0
、バッククォート内にネストされた内部コマンドが正しく評価されないように見えます。
どうすればこれを修正できますか?
bash - コマンド置換としての変数への代入値の bash および値の出力の出力
これを Bash で実現したいと思いecho $(a=1)
ます。変数の値を出力します。a
eval
、$$a
、{}
をテスト$()
しますが、ほとんどの場合、文字通りに取得したa=1
か、1 つのケース (どちらを覚えていないか) で値を実行しようとしたため、どれも機能しません。
私はできることを知っていました:a=1;echo $a
しかし、私は少し楽しいので、1行に1つのコマンドを実行します(少し複雑になることもありますecho
)printf
linux - コマンドが変数として渡されたときにコマンド置換で stdout/stderr リダイレクトを含める方法は?
ルーターの再起動後にネットワークが再びオンになったことを検出する次のスクリプトがあります。
ただし、ターミナルで実行すると、次のように出力されます。
ping: 不明なホスト &>/dev/null
-x
(デバッグを有効にする)オプションを指定してスクリプトを実行したところ、
としてサブシェルで実行されていました
コマンド置換呼び出しを変更して、bash が出力リダイレクトを一重引用符で囲まないようにするにはどうすればよいですか?