コマンド実行時のデータ出力先が標準出力とファイルの場合で結果が異なる!
2024年3月24日 c下の例では、 fork0 というコマンドを単純に実行した場合は3行出力されているが、リダイレクトでファイルに出力した場合では4行出力されている。 コマンド実行時のデータ出力先が、標準出力の場合とリダイレクトした場合で、その出力結果が異なっている。 1$ ./fork0 2before fork:
続きを読むC言語による浅いコピーと深いコピーの説明
2024年3月17日 c以下は、浅いコピーと深いコピーについて AI に回答させたもの。 C 言語だと内部の処理が見えるので理解が進む。 浅いコピー (シャローコピー): 浅いコピーは、オブジェクトの内部を再帰的にコピーする際に、データを参照としてコピーする。 つまり、コピーされた
続きを読むpushd, popd, dirs の基本的な使い方
2024年3月10日 linuxpushd でスタックにディレクトリを追加する pushdを使うと起こること。 cd を使ったときと同じようにディレクトリを変更する。 ディレクトリパスがディレクトリスタック(以降スタックと略記)に追加される。 スタックを表示する。 pushd を実行するたびに、スタックが
続きを読むジョブネットとコントローラの自作2
2024年3月3日 shellジョブネットコントローラの自作第二弾。 第一弾は awk を駆使して実現したが、 awk はコードが見づらく癖もあるため、ジョブコントロールに向かいないと感じていた。 また、ジョブの完了状態チェックをステータスファイルを用いて簡単化するため、今回は基本的にシェ
続きを読むシェルスクリプトで wait で待たずに終了ステータスを得るには
2024年2月22日 shell結論 : ps コマンドでジョブの実行状態をチェックして、終了していた場合にのみ wait で終了ステータスを拾えば良い。 bashの組込コマンド wait は、指定のプロセスが終了していなければ終了するまで待機するので、使い勝手が悪いことがある。 例えば次のケースを考え
続きを読むシェルスクリプトでタイマー作って指定日時にプログラムを実行する
2024年2月17日 shell業務で長時間かかる処理を夜間に実行したかったので、シェルスクリプトでタイマー ( timer ) を作成して、指定の時刻に自動実行できるようにした。標準的なコマンドや自作コマンドも実行可能。 実行例 ex1) ./timer "2024-02-17 23:00:00" mycommand param1 param2 ex2) ./timer "2024-02-17 02:30:00" find . -exec ls -l {} \; 1#!/bin/bash 2# 3# ファイル名:tim
続きを読むawk変数OFMTに指数形式を指定しても整数表示になる場合がある
2023年6月4日 awkawk の組み込み変数 OFMT は、print で実数を出力する際のフォーマット(Output FORmat)。 デフォルトは "%.6g" 。 但し、ある特定のケースにおいて、OFMTで指定した形式で出力されないことがある。 OFMTに指数形式を指定して整数値をprintした
続きを読むサンプルドキュメント linux の外部コマンド xmllint を用いて XPath のテストを行う。 この記事は XPathの動作確認(Excel VBA編) の linux 編である。 図1のXMLドキュメントファイルをサンプルとする。 構造としては、Studentsの子要素にStudentが複数
続きを読むbash で乱数値を取得するには、組み込み変数の RANDOM を使えば良い。 ただし、RANDOM で取得可能な乱数は 0 から 32767 まで。 32767 を超える乱数を取得するには、工夫が必要。 RANDOM を複数回使用する 例えば、0 から 10万までの乱数値を取得するには、以下のように RANDOM を2回使用
続きを読むbashの配列を連番で初期化するにはseqコマンドを使う
2023年6月3日 shellbash の配列の初期化などで、シーケンス(連続した値)を使用したい場合。 seq コマンドを使うか、または、シーケンス式を使う。 seq コマンドの場合 seq コマンドを使うと、引数に変数を使用できるので柔軟性がある。 例えば、var=5; arr=($(seq 1 $var)) とすれば、arr=(1 2
続きを読む