問題タブ [dash-shell]
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.
regex - 複数のシェル間での正規表現の互換性
次のコードを使用して、bash スクリプトで正しい日付形式を確認しています。
形式は次のとおりです: YYYY-MM-DD
これは bash では問題なく動作しますが、dash または sh で実行しようとすると問題が発生します。これを書き直して、dash と sh と互換性を持たせるのを手伝ってくれませんか? または、代わりに、すべてのシェルで使用できる別のソリューションを見つけますか?
前もって感謝します !
bash - [ x"$1" != x"" ] の目的は何ですか?
の目的は[ x"$1" != x"" ]
何ですか?
xdg-screensaver を見ると、最初に実行されるコマンドは次のとおりです。
シバンは#!/bin/sh
(私にとってはダッシュです)です。
他の古いシェル スクリプトで同様の構文を見つけました...これの目的は何ですか?
|| 使用する古い習慣があると思います || && ではなく終了します...おそらくset -e
. しかし、、、、など[ -n "$1" ] || exit_failure_syntax
を使用しないのはなぜですか...-z
$# -ne 0
私が言ったように、私はx"$var" = x""
以前にこの奇妙なものを見たことがあります。なぜ誰かがこれをするのでしょうか?
bash - shell: ワイルドカードはアルファベット順を保証しますか?
私がファイルを持っているときa.txt
、b.txt
それc.txt
は保証されていますか
また
ファイルをアルファベット順に結合しますか?
(私のすべてのテストでは、アルファベット順が保持されていましたが、たとえばls
、順序が定義されておらず、アルファベット順である必要がないため、よくわかりませんが、ファイルがディレクトリにアルファベット順に書き込まれることが多いため、そうなることがよくあります)
loops - ファイルシステムの変更をリッスンするダッシュ ループの CPU 使用率を制限するにはどうすればよいですか?
ファイルシステムの特定の場所にファイルが表示されるのを待つループをダッシュで書きました。ただし、実行すると、CPU の 50% を占有します。最初にスリープ コマンドを使用して CPU 使用率を下げましたが、ダッシュの最小スリープ時間 (1 秒) が長すぎます。
ループの CPU 使用率を下げるために、bash または別のソリューションで 1 秒未満でスリープする方法が必要です。ほとんどの UNIX システムにデフォルトでインストールされているプログラムのみを使用したいと考えています。
bash - シェル スクリプトで ERR をポータブルにトラップする
コマンドが失敗したときに中止し、問題のある行番号を表示するシェル スクリプトを作成しようとしています。
トラップ行は、Ubuntu のデフォルトのシェル スクリプト インタープリターであるダッシュでは機能しないことが判明しました。シバン行を#!/bin/bash
これに変更すると機能しますが、では機能しません#!/bin/sh
。bash の存在に依存せずにこれを機能させる方法はありますか?
ちなみに、ダッシュから得られるエラーは次のとおりです。
bash - Makefile の複数行ダッシュ コマンドは、切り離されたプロセスで実行可能ファイルを実行します
私のメイクファイルには次のターゲットがあります: (デタッチされたプロセスで python http サーバーを実行し、bash スクリプトが完了したらサーバーを強制終了したい)
&
ただし、行の後に a を置くとpython ...
、エラーが発生します
/bin/dash: 構文エラー: ";" 予期しない
これはどのように適切な方法で行うことができますか?
編集
次のようにメイクファイルを変更しました。
ただし、エラーが発生します:(行番号なし)
/bin/dash: 構文エラー: 予期しない単語
unix - `set -e` とサブシェルを使用した sh の奇妙な動作
Continuing
サブシェルを削除すると、以下のコードが出力されます。サブシェルでは、テスト後に別の成功した呼び出しが必要です (:
成功した no-op コマンドを使用するのが最も簡単です、IMO) Continuing
。
この動作は正しいですか? サブシェルを導入すると動作が変わるのはなぜですか
私はdash 0.5.7-2ubuntu2
これを実行するために使用しています。