問題タブ [sh]
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.
bash - autoconf で sh を使用する場合、SHELL=BASH が必要です。autoconf で bash を使用するにはどうすればよいですか?
autoconf を実行していて、configure で SHELL を「/bin/sh」に設定しています。これは大きな問題を引き起こします。autoconfのためにSHELLを強制的に「/bin/bash」にする方法は?
これを osx で実行しようとしていますが、Linux で動作しています。Linux は SHELL=/bin/bash を使用しています。osx のデフォルトは /bin/sh です。
shell - Bourne Shell で文字列を比較するにはどうすればよいですか?
シェルで文字列を比較する必要があります:
しかし、明らかに「*」はシェルでは機能しません。それを行う方法はありますか?
string - Bashで文字列に部分文字列が含まれているかどうかを確認する方法
Bashに文字列があります:
別の文字列が含まれているかどうかをテストするにはどうすればよいですか?
??
不明なオペレーターはどこですか。と を使用echo
しgrep
ますか?
それは少し不器用に見えます。
bash - スクリプト自体内でシェルスクリプト全体の出力をリダイレクトする方法は?
Bourne シェル スクリプトのすべての出力をどこかにリダイレクトすることは可能ですが、スクリプト自体の中にシェル コマンドを使用することはできますか?
1 つのコマンドの出力をリダイレクトするのは簡単ですが、次のようなものが必要です。
意味: スクリプトが非対話的に実行される場合 (たとえば、cron)、すべての出力をファイルに保存します。シェルから対話的に実行する場合は、出力を通常どおり stdout に送信します。
FreeBSD定期ユーティリティによって通常実行されるスクリプトに対してこれを実行したいと考えています。これは日常の一部であり、通常はメールで毎日見るのは気にしないので、送信していません。ただし、この特定のスクリプト内の何かが失敗した場合、それは私にとって重要であり、日常業務のこの部分の出力をキャプチャして電子メールで送信できるようにしたいと考えています.
更新: ジョシュアの答えは的を射ていますが、スクリプト全体で stdout と stderr を保存して復元したいと考えていました。これは次のように行われます。
java - Unix での Java のコンパイルと実行 (Windows から)
わかりました、これはWindowsで動作しています。私の Java アプリは正常に実行され、機能しています
ただし、Unix で同じことを行うと、次のエラーが表示されます: ojdbc14.jar: not found
私は何を間違っていますか?私は「;」を知っています ojdbc14.jar が新しいコマンドであることをシェルに伝えていますが、これを修正する方法がわかりません。
shell - bourne シェルのユーザー定義関数内で getopts を使用する
getopts がそれらを処理できるようにするために、コマンドライン引数を bourne スクリプト内から関数に渡すことは可能ですか?
スクリプトの残りの部分は関数にうまくまとめられていますが、引数の処理をメイン ロジックに移動する必要があるように見え始めています。
以下は現在の記述方法ですが、機能しません。
スクリプトの引数を読み取れるように関数を定義することは可能ですか? これを他の方法で行うことはできますか?私は getopts の機能が気に入っていますが、この場合、それを取得するにはコードの美しさを犠牲にする必要があるようです。
shell - / bin/shで2つのリストを並行して反復します
同じ長さのリストが2つあり、個々のアイテムにスペースはありません。
これらの2つのリストを並行して繰り返し、aと1、bと2などをペアにします。
最新のポータブルBourneシェルをサポートしようとしているため、Bash/kshアレイは使用できません。awkに砲撃することはピンチで許容されますが、可能であれば、これを純粋なshで維持したいと思います。
あなたが提供できるどんなポインタにも感謝します!
bash - For Loop in Shell Script - csv ファイルにブレークラインを追加
for
シェルスクリプトでループを使用しようとしています。
テキストファイルからコマンドを実行しています。各コマンドを 10 回実行し、いくつかの統計を csv ファイルに挿入したいと考えています。そのコマンドが実行された後、次のコマンドを開始したいのですが、10 回実行された最初のコマンドの後に CSV ファイルに改行を入れます。
次は正しいですか。
助けてくれてありがとう
アップデート
ループは正しく実行されていますが、各コマンドが 10 回実行された後に改行を追加することはできません。
shell - コマンドの出力を Bourne シェルのファイル記述子にキャプチャするにはどうすればよいですか?
Bourne シェルでコマンド出力をキャプチャする標準的な方法は、次の$()
構文を使用することです。
ただし、大量の出力があるコマンドの場合、これには、シェルが全体に 1 つの長い文字列としてメモリを割り当てる必要があります。popen
私ができる新しいファイル記述子を取得するために、Unix C function と道徳的に同等のことをするものを見つけたいと思いますread
:
これは可能ですか?