問題タブ [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.

0 投票する
1 に答える
2440 参照

linux - Linux のシェル スクリプトで画面解像度を取得するにはどうすればよいですか

環境

システム: Linux Mint 18 / 19 Cinnamon 64 ビット。

シェル: dash( POSIX ).


質問

POSIX シェル スクリプトで画面解像度を動的に考慮する必要があります。

私は再利用のための機能を好みます。

0 投票する
1 に答える
1940 参照

shell - sh -cのコマンド引数で引用符をエスケープする方法は?

シェル コマンド cmd には、空白と一重引用符と二重引用符を含めることができます。

これらの引用符をエスケープして、コマンドを POSIX シェルに正しく渡す方法:

>dash -c 'コマンド'

二重引用符として指摘されているもう1つの質問は、二重引用符について尋ねます。そこにある答えの1つはおそらくうまくいくでしょう-コマンドを分割し、連結された引用符を使用することです。たとえば、cmd が

次に、それを次のように変換します

これは厄介です...もっと簡単な方法はありませんか?

追加: 誰も私を理解していないようです... 入力、文字列 (完全に正確には、ASCII テーブルの 0 から 127 までの印刷可能な ASCII 文字から作成) を受け取る一般的な手順、アルゴリズムが必要なだけです。 2 番目の文字列を出力します。要件は、最初の文字列がこのように実行される場合

結果は同じです

私は今より明確になりましたか、教えてください。

0 投票する
2 に答える
335 参照

bash - リグレッション: エクスポートされた Bash 関数が別のプロセスを通過した後に失われる

Ubuntu 14.04 から 16.04 に移行するときに、エクスポートされた関数が見つからないために、いくつかの Bash スクリプトが失敗していることに気付きました。これはシェルショックのバグの修正に関係しているのでしょうか, 私は関数を単純に説明export -fし、Bash 内部の関数表現に依存していません. 障害は、間に別のプロセスがある場合にのみ、直接の Bash サブシェルでは発生しません。たとえば、 awk / Perl / Vim を呼び出す Bash は別の Bash を呼び出します。Perl の例を次に示します。

良い

悪い

私は何か間違ったことをしていますか、それともこれはバグですか?

編集:@chepnerは、Bashが特別な名前のシェル識別子を使用して関数を保存していることを指摘しました。dash(0.5.8-2.1ubuntu2、0.5.7-4ubuntu1 での作業) を通過すると、これらの識別子は削除されます。でksh、それらは生き続けます。で確認しました

:set shell=/bin/bash同様に、Vim の動作は/で変更できます。:set shell=/bin/ksh

それで、dash責任がありますか?

0 投票する
2 に答える
894 参照

bash - bash: 同じ行でエイリアスを設定して使用することはできません

foo2行目の代わりに次のように言うと思いcommand not foundます:

2行目はなぜ言わないのfooですか?次のシェルでテスト済み、同じ動作:

  • バッシュ 3.2.5
  • zsh 5.0.8
  • ダッシュ 0.5.9
  • ビジーボックス 1.25.0
0 投票する
0 に答える
36 参照

shell - ダッシュ文法が空でない改行文法記号を含む for ループを受け入れないのはなぜですか? これはダッシュ バグですか?

シェルの下dashで、なるほど

の POSIX シェル文法

http://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html#tag_18_10_02

もっている

for_clause :(...)

| For name linebreak in(...)

solinebreakは空である必要はありませんが、改行にすることができます。では、なぜそのエラーが表示されるのでしょうか? これはdashバグですか?

bashはこの例を受け入れますが、明らかにこの例は「bash-ism」とは何の関係もありません。これは基本的な POSIX シェル構文であり、 と の両方に共通dashですbash

0 投票する
1 に答える
799 参照

bash - 「bash -c」対「dash -c」

dash -cとは異なる動作をしbash -cます:

この違いの説明はありますか?

0 投票する
1 に答える
1001 参照

debian - 「make」と入力して「dash-to-dock」をコンパイルすると、このエラー出力が表示されました

誰かが私を助けることができますか?

0 投票する
1 に答える
48 参照

dash-shell - 関数の戻り値を置き換える簡潔な方法はありますか?

dash継承したシェル スクリプトの単体テストをいくつかまとめています。追加する多数のテストを考慮して、それらをできるだけ簡潔に保ちたいと考えています。

これを行うcheckために、テストの成功または失敗を処理するヘルパー関数を追加しました。基本的には、前のコマンドからの戻りコードを受け取り、それに$?基づいてテストを成功または失敗させます。これにより、次のようにワンライナー テスト (多数あります)を簡単に実装できます。

各テストが 1 行にまとめられるので、これはかなり良いことですが、完璧を求める私の OCD の探求では、削減の余地がさらにあるのではないかと思います。

bashのように、コマンドを実行し、その出力を別のコマンドで使用する機能があることを知っています。

しかし、コマンドの戻りコードでこれと同じ置換を行う方法があるかどうか疑問に思っていました。

これは、私のテスト行から、次のよう$?に変更して、厄介な繰り返しを削除できることを意味します。

次のようなものに:

where$[]は神話上の「リターン コードを使用する」置換演算子です。

この機能はありますかdash、それとも私が現在行っているよりも簡潔な方法はありますか?

他のシェルはここではオプションではないことに注意してください。これは、dash提供されている唯一のシェルである組み込みシステムです。