Bashのエラーコードの話 RC 127はパスが通ってないよ
Cモジュールを修正、リコンパイルして実行したところ、戻り値が127だって。
ソース中ではRC=127で記述していなかったので、きっとbashが返してるはず。
というわけで調べてみると、どうやらLD_LIBRARY_PATHでlibのパスが通ってなかったことが判明。
代表的な戻り値はこんな感じ。
・127 :パスが通ってないよ。
・139 :segmentation fault(メモリーエラー)
bashが返すエラーコードは128を超えると、128 + シグナル を返します。
シグナルは、>|| kill -l ||< で確認できます。こんな感じ。
1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1 11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM 16) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP 21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ 26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR 31) SIGSYS 34) SIGRTMIN 35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3 38) SIGRTMIN+4 39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8 43) SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13 48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12 53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7 58) SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2
Excelのセル内改行、一括削除
テストデータ、いろんな文字コードまたいでいるうちに、気が付けば1行ごとに改行コードが入ってしまった事件!
それも、csv!!
すべての改行コードを消しちゃうと、N行が1行になってしまうので、それは使えない。
という時に覚えた便利なExcelテクニック。
一括置換しようにも改行コードが入力できないっぽく見えるけど、検索する文字列にCtl + j を入力すると、ぱっと見わかりにくいけど、
実は改行コードが入力できます。
これでcsvのデータ内の改行コードも一括置換で削除、完了!
それでもダメなときがたまにあるけど、そんな時は隣にワーク列を作って=clean(セル) の関数を入れてあげると、
改行コードが削除できます。
で、値貼り付けで元の列に戻してあげれば、all ok.
対話型を対話しないLinux expect de scp
リプレイス前は、サーバ間で共有ディスクをそれぞれマウントしていたので、cpコマンドでサクッとコピーができたけど、AWSに持っていったらそれぞれのサーバにEBSでディレクトリがきられてる!
コピーコマンド使えない!!
で、scpを使ってみました。
コピー元でシェルを動かすので、こんなコマンドでサクッとコピー。
scp -P 10022 /home/test/sec-cp.dat test@192.168.1.1:/tmp/sec-cp.dat
scpはsshのポートを使うので、オプション -P でポート番号10022を指定しています。
コピー元が /home/test/sec-cp.dat
コピー先が test@192.168.1.1;/tmp/sec-cp.dat
コピー先のユーザはtestです。
でも、困った事が。
scpは対話型コマンドなので、実行すると?
password:?って聞いてくる。
.....
しょうがないので、expectを使ってみました。
expect -c " spawn scp -P 10022 /home/test/sec-cp.dat test@192.168.1.1:/tmp/sec-cp.dat expect "passwd:" send "passworddesu¥n" "
spawnに続いて、実行したいコマンドを。
expectに続いて、対話で表示される文字列を入力します。
尚、spawnで実行したコマンドがエラー吐くと、
spawn_id: spawn id exp6 not open
って言われます。
RedHat Enterprise Linux のバージョン確認
OSのバージョンってふとしたタイミングで確認した時がある。
とりあえず uname -aとか打ってみるけどわからない。
で調べた結果が、これ。
RedHat Enterprise Linux では、これ。
>cat /etc/redhat-release >RedHatEnterpriseLinux Release 7.4 (Maipo)
うん、すぐ忘れるやつだ、これは。
で、またググるだろう。きっと。
対話型を対話しないLinux expect de scp
リプレイス前は、サーバ間で共有ディスクをそれぞれマウントしていたので、cpコマンドでサクッとコピーができたけど、AWSに持っていったらそれぞれのサーバにEBSでディレクトリがきられてる!
コピーコマンド使えない!!
で、scpを使ってみました。
コピー元でシェルを動かすので、こんなコマンドでサクッとコピー。
>||
scp -P 10022 /home/test/sec-cp.dat test@192.168.1.1:/tmp/sec-cp.dat
||<
scpはsshのポートを使うので、オプション -P でポート番号10022を指定しています。
コピー元が /home/test/sec-cp.dat
コピー先が test@192.168.1.1;/tmp/sec-cp.dat
コピー先のユーザはtestです。
でも、困った事が。
scpは対話型コマンドなので、実行すると?
password:?って聞いてくる。
.....
しょうがないので、expectを使ってみました。
>||
expect -c "
spawn scp -P 10022 /home/test/sec-cp.dat test@192.168.1.1:/tmp/sec-cp.dat
expect "passwd:\n"
send "passworddesu"
"
||<
spawnに続いて、実行したいコマンドを。
expectに続いて、対話で表示される文字列を入力します。
尚、spawnで実行したコマンドがエラー吐くと、
>||
spawn_id: spawn id exp6 not open
||<
って言われます。