問題タブ [ksh]

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 投票する
13 に答える
11988 参照

perl - シェル/Perl スクリプトでパスワードを保持するためのベスト プラクティスは?

私は最近、何人かの同僚を助けるために Perl とシェル スクリプトのスキルを磨かなければなりませんでした。問題の同僚は、大規模な Oracle データベース バックエンドを使用して内部アプリケーションからいくつかのレポートを提供する任務を負っていますが、これを行うスキルがありません。私にそんなスキルがあるのか​​と疑問に思う人もいるかもしれませんが(笑)、そう思っている人も多いようです。

だから私の質問に-データベースからレポートを抽出するために、私のスクリプトは明らかに接続してクエリを実行する必要があります。これまでのところ、データベースのユーザー名とパスワードを保存する場所の適切な解決策を思い付くことができなかったため、現在はスクリプトにプレーンテキストとして保存されています。

おそらくCPANモジュールとして、他の誰かがすでに書いているこれに対する良い解決策はありますか? または、ファイルシステムの別の場所に隠されている完全に別のファイルにユーザー/パスワードの組み合わせを保持するなど、他に行うべきことがありますか? それとも、システム全体の grep を使用してスクリプトから引き出されるのを避けるために、単純に暗号化したままにしておく必要がありますか?

編集: Oracle データベースは HP-UX サーバー上にあります。
アプリケーション サーバー (シェル スクリプトを実行) は Solaris です。
スクリプトを自分だけが所有するように設定することはできません。複数のサポート担当者がアクセスできるサービス アカウントがスクリプトを所有する必要があります。
スクリプトは、cron ジョブとして実行することを目的としています。
私は公開鍵認証を使いたいと思っていますが、Oracleでそれを機能させる方法を知りません-そのような方法があれば-教えてください!

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

unix - vi エディターを使用して KornShell コマンドラインでオートコンプリートする方法

AIX UNIX バージョン 5.3上の KornShell (ksh) で、以下を使用してエディター・モードを vi に設定します。

ファイルまたはディレクトリ名をオートコンプリートするためのシェル コマンド ラインでのキーストロークは何ですか?

0 投票する
4 に答える
824 参照

linux - REDUX: Linux 上の ksh と AIX/Solaris/HPUX にインストールされたものとの間の非互換性を克服する方法は?

数百の ksh スクリプトを AIX、Solaris、および HPUX から Linux に移植する作業の中で、別の問題を発見しました。前回の問題はこちら

このコード:

(名前が k で始まる複数のファイルを含むディレクトリで実行すると)、「そうそう!」が生成されます。AT&T ksh バリアント (ksh88 および ksh93) で呼び出された場合。一方、「No way!」というエラー メッセージが表示されます。他の ksh バリアント (pdksh、MKS ksh、および bash)。

繰り返しますが、私の質問は次のとおりです。

  • pdksh を ksh93 のように動作させる環境変数はありますか? 失敗した場合:
  • 必要な動作を取得するための pdksh のオプションはありますか?
0 投票する
2 に答える
32336 参照

shell - mailxとuuencodeで添付ファイルを送信するKornShell(ksh)コード?

mailxでファイルを添付する必要がありますが、現時点では成功していません。

これが私のコードです:

フィードバックをいただければ幸いです。


更新 毎回パスを使用する必要がないように、添付ファイル変数を追加しました。

0 投票する
6 に答える
10268 参照

shell - KornShell (ksh) ラップアラウンド

わかりました、これは単純だと確信していますが、それは私を夢中にさせています。私は最近、少し時間をさかのぼって Redhat 9 を使用しなければならなかったプログラムに取り組みました。テキストを新しい行に折り返すのではなく、画面を右にスライドさせます(コマンドの左側を切り取ります)。コマンドラインから直接前のコマンドを簡単にコピーして貼り付けることができないため、これは私にとって困難です。履歴を見て、そこからコマンドを貼り付ける必要があります。ご参考までに、私は多くのコマンドライン awk スクリプトを実行しているため、行が非常に長くなります。

入力しているコマンドの右側に表示を移動する代わりに、コマンド ラインを強制的に折り返す方法はありますか?

マンページのオプションを調べてみましたが、うまくいきませんでした。

私は走っています:

  • XFree86 4.2.99.903(174)
  • KSH 5.2.14。

ありがとう。

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

arrays - KSHスクリプト:値がコンマをエスケープしたときに「,」で分割する方法は?

名前と値のペアで構成されるファイルを処理するための KSH スクリプトを作成しようとしています。

形式は次のとおりです。

私が書くとしましょう:

これにより、2 番目の名前と値のペアが簡単に得られます。ここで、値にカンマを含めることができるようにタスクが拡張されたとします。次のようにエスケープする必要があります。

「読み取り」はすべての引用符を取り除き、配列の2番目の要素は「NAME2 VALUE2_1」になるため、明らかに、私のコードは機能しなくなりました。

「読み取り -A 配列」を持たない古い ksh で立ち往生しています。「read -r」と「eval set -A ....」でさまざまなトリックを試しましたが、役に立ちませんでした。「read nvl1 nvl2 nvl3」を使用して読み取り内でアンエスケープと分割を行うことはできません。これは、各行に名前と値のペアがいくつあるかを事前に知らないためです。

誰かが私のために役立つトリックを持っていますか?

PS Perl、Python、さらには awk でこれを行ったことがあることを知っています。ただし、kshで実行する必要があります(...または試してみてください;)

0 投票する
5 に答える
29366 参照

bash - パイプ区切りファイルからフィールドを出力するにはどうすればよいですか?

パイプ文字で区切られたフィールドを持つファイルがあり、2 番目のフィールドのみを印刷したいと考えています。この試みは失敗します:

これを行う方法はありますか?

0 投票する
4 に答える
13751 参照

shell - ksh シェルスクリプトで前営業日を計算するにはどうすればよいですか?

シェルkshスクリプトで前営業日を計算する最もエレガントな方法は何ですか?

私が今まで得たものは:

${DAY_DIFF} 変数を文字列ではなく値として送信するにはどうすればよいですか?

0 投票する
5 に答える
1925 参照

perl - KshとPerlでタスクを並行して実行する最良の方法は何ですか?

この大規模なC++プロジェクトがあり、並列makeがないプラットフォーム(Linuxのmake -jなど)でビルドする必要があります。サーバーには6つのCPUがあり、手動で並列ビルドを実行したいと思います。

このようなタスクリストを約300個のオブジェクトファイルに対して生成できます。依存関係のチェックとインクリメンタルビルドにMakefileを使用します。

make -f Makefile obj1.o

make -f Makefile obj2.o

make -f Makefileobj3.o..。

KshとPerlを使用して一度に6つ以下のタスクを実行しながら、これらのタスクを並行して実行するにはどうすればよいですか?(JavaまたはPythonは使用できません:-()

0 投票する
11 に答える
89011 参照

unix - Unixで出力の列の合計を計算する最短のコマンド?

Unixシステムで値の列の合計をすばやく簡単に計算する方法があると確信していますが(awkまたはxargsおそらく何かを使用して)、行ごとに行を解析するシェルスクリプトを書くことが唯一の方法です現時点での心。

たとえば、次のコマンドを変更して、SEGSZ 列 (70300) の合計を計算して表示する最も簡単な方法は何ですか?