シェルスクリプト質問スレ
1 :login:Penguin :2019/04/12(金) 20:22:09.78 ID:ga+nyK60.net シェルスクリプトに関する質問スレです。
2 :login:Penguin :2019/04/13(土) 08:00:52.24 ID:mHs4A1+v.net 宿題は自力でやること
3 :login:Penguin :2019/10/27(日) 23:06:44.49 ID:Q9HmdE9E.net 質問お願いしましす。 リモートで最新の1つを残してログを削除したいです。 $ ssh host 'rm -f `ls -1t /home/app/201910/*.log | tail -n+2`' これを複数のディレクトリで実行しようとしたのが、 var1=201909 var2=201910 array=($var1 $var2) for var in ${array[@]} do ssh host rm -f $(tail -n+2 $(ls -1t /home/app/${var}/*.log)) done なのですが、ls -1t /home/app/${var}/*.logがローカルで実行されてしまい ます。(ls: /home/app/201909/*.log: No such file or directory) うまくいくようにアドバイスなどいただけるとうれしいです。 女子高生です。
4 :login:Penguin :2019/10/27(日) 23:07:33.30 ID:Q9HmdE9E.net 上げさせてください。
5 :login:Penguin :2019/10/27(日) 23:37:34.99 ID:KbsZ4Niq.net こっちでやれ シェルスクリプト総合 その32 https://mevius.5ch.net/test/read.cgi/tech/1571929725/
6 :login:Penguin :2019/10/28(月) 12:28:06.90 ID:GFu2H5Oy.net >>3 >質問お願いしましす。 お願いされても...特に質問はありません
7 :login:Penguin :2019/10/28(月) 15:42:25.73 ID:p0ChFQHF.net >>6 もげろ!
8 :login:Penguin :2019/10/29(火) 02:44:55.55 ID:CaAjlyZm.net お願いされたから反応したのに、もげろってどういうことよ
9 :login:Penguin :2020/04/17(金) 21:01:57 ID:ueg9oyq0.net ビデオ(Totem)で曲4つをループして聴くシェルスクリプトを作ったのですが、1曲目だけで終わってしまいます。 以下ソースです #!/bin/bash while true do /usr/bin/totem /home/hiromitsu/ミュージック/music/album1/無題のフォルダー/WinterSong.ogg ; /usr/bin/totem /home/hiromitsu/ミュージック/music/album1/無題のフォルダー/世界中の誰よりきっと.mp3 ; /usr/bin/totem /home/hiromitsu/ミュージック/music/album1/無題のフォルダー/サイレント・イヴ.ogg ; /usr/bin/totem /home/hiromitsu/ミュージック/music/album1/無題のフォルダー/Itsuka no Merry Christmas.mp3 done どこがいけないんでしょうか・・・?
10 :login:Penguin :2020/04/18(土) 02:06:12.81 ID:jLP8+C0w.net 日本語のパス・ファイル名は、使えるの? .ogg/.mp3 も、両方とも使えるの? それと、あちこちに、echo `date` を入れて、時刻を見た方がよい do echo `date` /usr/bin/totem 何々 echo `date` /usr/bin/totem 何々 echo `date` done
11 :login:Penguin :2020/09/25(金) 17:01:00.14 ID:rcXzyqi8.net #cat test.sh line=aaa,bbb,ccc arr=($(IFS=,; echo $line)) echo ${arr[0]} echo ${arr[1]} echo ${arr[2]} #sh test.sh aaa bbb ccc と期待通りを結果を得られるのですが、これを # line=aaa,bbb,ccc # arr=($(IFS=,; echo $line)) # echo ${arr[0]} aaa bbb ccc # echo ${arr[1]} # echo ${arr[2]} # と1行ずつTeratermに張り付けて実行すると期待する結果を得られません。 なにが違うのでしょうか。
12 :login:Penguin :2020/11/28(土) 15:04:57.14 ID:MDlmtOMg.net bash(1)にはgotoという文言は見えないが、gotoに類した命令ある?
13 :login:Penguin :2020/11/28(土) 15:46:36.13 ID:MhK0ESFR.net そういやシェルスクリプトにgotoがないっていうのは シェルスクリプト(のオリジナル)が作られた時期から見て 先見の明を持ってるんじゃねーか? 当時の言語はgotoはあって当然だったと思うんだが
14 :login:Penguin :2020/11/28(土) 16:07:55.28 ID:YtZOOFJV.net シェルスクリプトは完全逐次処理やろ。 gotoを実装するのはかなり難しいと思うが。 先見の明よりも、たんに面倒だったのでは。
15 :login:Penguin :2020/11/28(土) 20:19:08.21 ID:e4eFQGLq.net 逐次処理って、DOSのBATファイルじゃあるまいし。 つか、BATにすらGOTOあるのに。
16 :login:Penguin :2020/11/28(土) 21:21:02.92 ID:H/pve6/s.net gotoなんてラベルの場所に飛ぶだけじゃん
17 :login:Penguin :2020/12/04(金) 02:23:12.31 ID:mk+BcjcR.net また先頭から読み直すの? 当時のメモリの量を知らないわけでもあるまいに
18 :login:Penguin :2020/12/04(金) 02:40:48.92 ID:PAEzIreY.net >>17 の意味を、誰か説明してくれ。
19 :login:Penguin :2020/12/04(金) 13:13:09.69 ID:ywaWilQb.net メモリは使ったら無くなるんですよ? 再起動しなければどんどん減っていきます。 と言ってるんだろ
20 :login:Penguin :2020/12/04(金) 23:02:19.60 ID:mk+BcjcR.net 大容量16KBのメモリしかないシステムでgotoを実現しようと思ったら スクリプトファイルを読み直す以外の対応はできないだろ その間にファイルが書き換わっていたらどうすんの? とか考えもせずに簡単とか言い出すようなバカには理解できなかったか
21 :login:Penguin :2020/12/04(金) 23:14:30.81 ID:+G9n1HNW.net gotoなんてアセンブラで2〜4バイト程度で実現できるやろ 16KBなんて広大だ
22 :login:Penguin :2020/12/04(金) 23:32:43.90 ID:29P9oGAn.net >>21 お花畑で裏山。w
23 :login:Penguin :2020/12/05(土) 02:05:42.72 ID:Ts+UhpZc.net MSXは16KBの機種もあってgotoがあるBASIC搭載ですが スクリプト?読み直す?何を言ってるんでしょうか?
24 :login:Penguin :2020/12/05(土) 02:27:41.94 ID:aPsfjGiM.net スクリプトスレで「スクリプト?」とか言い出すようなお爺ちゃんは黙っててくれよ
25 :login:Penguin :2020/12/05(土) 03:09:07.89 ID:s8sjtagm.net >>20 だから何が言いたいんだ? 例えば、大容量640KBのメモリしかないDOSのBATファイルならスクリプトファイルを読み直してるんだろ。動作中にファイルが書き換わってたら、変わったように動作するんだから。 そんなの実現方法の一つに過ぎんだろ。
26 :login:Penguin :2020/12/05(土) 04:50:25.04 ID:aPsfjGiM.net >>25 君みたいながさつな人間にはそんな仕様で問題ないのかもしれんが sh作った人はそうじゃなかったってことだよ
27 :login:Penguin :2020/12/05(土) 09:01:53.70 ID:Ts+UhpZc.net >>25 お前はバッチファイル特有の話をしただけだったってことが真相かw
28 :login:Penguin :2020/12/05(土) 10:16:37.06 ID:s8sjtagm.net >>26 sh作った人の志向であったというなら、ハナからそう言えばいい。 小メモリだとGOTOを実装できないなどという、知ったかぶりにも満たない妄言は要らない。
29 :login:Penguin :2020/12/05(土) 22:26:18.30 ID:gKsDqE5D.net >>28 とりあえず、gotoを追加するパッチでも提出してこいよ?
30 :login:Penguin :2020/12/06(日) 00:58:26.39 ID:cfA/TiGD.net >>29 breakとかcontinueがそれ gotoの乱用を防ぐために、ループの開始と終わりにしか gotoできないようになってる
31 :login:Penguin :2020/12/06(日) 01:03:45.60 ID:pAeBLops.net >>30 それこそ、知ったかぶりにも満たない妄言なんしゃねえの?w
32 :login:Penguin :2020/12/06(日) 01:52:29.29 ID:cfA/TiGD.net >>31 どういう意味? breakとかcontinueは実際にジャンプしてるんだが?
33 :login:Penguin :2020/12/06(日) 01:56:35.20 ID:/kQnwSfL.net >>31 >>30 の言うことは正しい。 そもそも、WHILE、FOR は GOTO [後方] の亜種だし、IF THEN は本質的に IF GOTO だ。 つまり、GOTO が技術的理由で実現できなければ、全てのフロー制御は実現できない。というか、GOTO 機能自体は単なるマシン語命令なので、実現できない理由は特に無い。 言語の基礎知識レベルの話だが、これ等が知ったかぶりや妄言に聞こえるようでは、救いようが無いね。
34 :login:Penguin :2020/12/06(日) 02:08:08.39 ID:cfA/TiGD.net GOTO禁止ブームや構造化プログラミングがでたのっていつなんだろう? シェルスクリプトにGOTOがないのはその話を踏まえた上の設計だよね?
35 :login:Penguin :2020/12/06(日) 02:08:31.12 ID:jGLSVz7n.net スクリプト言語の制御構造をマシン語命令とか言うバカ、初めて見た
36 :login:Penguin :2020/12/06(日) 02:09:38.25 ID:cfA/TiGD.net 1968年か 1968年の投書「goto文は有害」 https://ja.wikipedia.org/wiki/%E6%A7%8B%E9%80%A0%E5%8C%96%E3%83%97%E3%83%AD%E3%82%B0%E3%83%A9%E3%83%9F%E3%83%B3%E3%82%B0
37 :login:Penguin :2020/12/06(日) 02:11:28.22 ID:cfA/TiGD.net 最初のシェルは1971年だから、やっぱりGOTO有害論のあとか https://ja.wikipedia.org/wiki/Thompson_Shell
38 :login:Penguin :2020/12/06(日) 02:16:15.15 ID:pAeBLops.net >>37 しかし、「有害論」の影響なのかどうかはわからない。 その後でも、gotoのある言語もない言語もあるわけで。
39 :login:Penguin :2020/12/06(日) 02:30:39.96 ID:cfA/TiGD.net > Thompson Shell のデザインは、Multics の模倣を意図したものだった。 > プログラムの分岐処理で欠かせない if や goto といった語ですら、別々のコマンドとして実装されていた[1]。 って書いていたから当時はまだgotoあったんだな 改良するにつれてなくしたと
40 :login:Penguin :2020/12/06(日) 02:33:16.62 ID:cfA/TiGD.net POSIXシェルの前身であるBourne Shellでようやくgotoが消えたっぽい https://ja.wikipedia.org/wiki/Bourne_Shell
41 :login:Penguin :2021/02/16(火) 09:41:02.07 ID:kZGVXNU/1 シェルスクリプトのbashでの変数について教えてください。 HOGE1="fugafuga" HOGE2="pagepage" とした場合、for文で回し変数の値がfugafuga以外だった時だけ 何か処理を実施したい場合、testの書き方はどうすればよいですか? 下記だとうまくいきませんでした。 for i in 1 2 3 4 do if [ "$HOGE$i" != "fugafuga" ]; then 何かの処理 fi done
42 :login:Penguin :2021/06/06(日) 22:12:52.88 ID:EGRoOpIk.net 標準出力の速度を制限したり、通信速度を表示するコマンドってありますか?
43 :login:Penguin :2021/06/07(月) 02:12:34.71 ID:a9qe7L9c.net マルチは死ねば良いのに
44 :login:Penguin :2021/06/07(月) 11:25:30.38 ID:vEYRV92+.net >>43 ありがとうございましたーーーー!
45 :login:Penguin :2021/06/15(火) 12:05:40.24 ID:WDa66Wnu.net 標準入力をreadして変数に溜め、望みの時間sleepして標準出力にechoするだけのwhileループじゃん
46 :login:Penguin :2021/06/18(金) 16:00:55.53 ID:bouE9vru.net テキスト行の末尾に改行があればそのまま、なければ改行を追加、みたいなフィルタはどう書くのが簡単? sed -z ...でできるんだけど、実はもっとあっさり!だったりしないかな。
47 :login:Penguin :2021/06/18(金) 16:13:51.93 ID:xODAv2nB.net >>46 改行のない行の末尾って何よ。
48 :login:Penguin :2021/06/18(金) 17:47:38.78 ID:bnil1fLC.net $ cat sample.txt (snip) This line is end of file.[EOF] を $ cat sample.txt (snip) This line is end of file. [EOF] にしたいってことじゃね?
49 :login:Penguin :2021/06/26(土) 13:29:06.46 ID:3hhiwe6I.net cat aaa | awk '1' これなら、sedよりあっさり? とは言えないか。
50 :login:Penguin :2021/07/03(土) 19:05:53.16 ID:QPB5ysNZ.net 行末に改行があろうがなかろうが改行文字(\n)を削除してから 行末文字($)を改行文字(\n)で置き換える(行末に改行文字を追記する) cat sample.txt | tr --delete '\n' | sed 's/$/\n/'
51 :login:Penguin :2021/07/03(土) 22:59:15.09 ID:EIKNeueg.net よくこんな暗号みてぇなもん覚えられんなw
52 :login:Penguin :2021/07/03(土) 23:33:42.29 ID:jCdyWCtw.net インタラクティブにシステムコール呼べたら楽かなと思ってbashのヒアストリングをgccに食わせたんだけど gcc -o ${blob} <<ccode \#include <...> ... ${fun}(${argv}) ccode ld:/dev/fd/nn見つからないよ collect2: ld returned 1 gccがldを非同期実行し、fdが回収された後にもldが動いてるのかと思い (gcc ... & 1s)のように遅らせてもダメな謎 とりあえずmktempで動きはするけど、中間ファイル要らないクリーンなやり方ないかな 大体こんな雰囲気 code=$(mktemp --suffix \.c) blob=… (include/漁って型取得、引数成形) IFS=, declare argv="$*" cat <<c >|${code} \#include <...> ... ${fun}(${argv}) ... c gcc ${code} -o ${blob} rm -rf ...
53 :login:Penguin :2021/07/04(日) 18:31:48.85 ID:kHg5RL8R.net 単にgccが標準入力をソースコード扱いしたりはしないってだけでは /usr/lib/gcc/中略/cc1なら標準入力を取るけどこのパスの特定は面倒だし、素直に中間ファイル作ったほうが良さげでは perlとかpythonで済むならそっちでも
54 :login:Penguin :2021/07/05(月) 04:04:46.24 ID:mQ20rymu.net >>53 ファイル作ると監視システムに見つかるから、 それを避けたいって話じゃないの?
55 :login:Penguin :2021/07/05(月) 19:18:48.07 ID:Pk2boC0r.net >>50 「行末に改行があろうがなかろうが」 すまん意味がわからん。 テキストファイルはCRLFかLFの改行コードを入れて 初めて行末になるもんだと思ってたが、 それ以外の行末もあんの?
56 :login:Penguin :2021/07/05(月) 19:33:04.73 ID:AjlMGFnC.net >>55 ファイル終端
57 :login:Penguin :2021/07/05(月) 19:43:42.34 ID:DgsJIMGq.net ファイル末尾と言いたかったんじゃないの。 >>46 はバグった仕様書を書くとタイプ。>>50 は腐った仕様書に疑いを挟まずコーディングするタイプ。
58 :login:Penguin :2021/07/05(月) 20:37:17.76 ID:AjlMGFnC.net >>57 は理解力がゼロなタイプ。w
59 :login:Penguin :2021/07/07(水) 16:25:53.24 ID:ITjV3pwU.net >>53 返信遅くなってごめん 進捗 プロトタイプはマクロだらけの生ヘッダよりman 2/3から抽出してテキストに纏めると楽にできた 手間は掛かったけどシェルから色々実験できて楽しい、見返りはあった 特定の変数に入れて返されるエラーコードはハードコードして拾うしか無さそうだけど、そこまではいいかな… フロントエンドのgccでなく直接cc等呼ぶのも試してみる、ありがとう
60 :login:Penguin :2021/07/07(水) 16:38:49.73 ID:L74nIjWf.net >>54 個人PC上での個人的な便利ツールなのでそこまで考えてないです たまにrm失敗するので何らかのデーモンが見に来てるとは思いますが、呼ぶたびに前回のtmpをsuffixで識別&一掃してます…
61 :login:Penguin :2021/07/21(水) 12:49:56.05 ID:pz8Jt368.net あるフォルダが存在するか否かによって分岐させたく if [ -d ./$DIR]; then hogehoge という形でスクリプトを書いているのですが 現状~/shell_scriptにパスを通してここにそのスクリプトを置いて実行しているので~/shell_scriptに$DIRが存在するかで判定されてしまいます これをなんとか実行するディレクトリでフォルダの有無を確認するようにしたいのですが何かいい方法はないでしょうか
62 :login:Penguin :2021/07/21(水) 13:01:20.15 ID:rGKkhVvF.net ./$DIRで既にカレントディレクトリからの相対のはずなので、どこかでcdしていなければ スクリプトの置き場所が影響するなんてないはずだけど わざわざ ~/shell_script に移動してから実行とかしてない?
63 :login:Penguin :2021/07/21(水) 13:07:40.35 ID:pz8Jt368.net 即レスありがとうございます 純粋にフォルダの指定方法が間違っていただけでした ありがとうございます
64 :login:Penguin :2021/07/29(木) 16:33:07.23 ID:wWzOvGhA.net 環境変数指定のコマンドラインについて質問。 ENV=VALUE cmdline1 ENV=VALUE cmdline2 これをまとめたくて、次のようにするとエラー。 ENV=VALUE ( cmdline1 ; cmdline2 ) しかたがないので、次のようにしてます。 ENV=VALUE bash -c 'cmdline1 ; cmdline2' なんかわかりにくいし、コマンドラインのクォートが面倒でもあるし、イヤな感じ。 もっときれいな書きかたはありませんか?
65 :login:Penguin :2021/07/30(金) 03:08:07.29 ID:Ju9d/5Jx.net ( ENV=VALUE; cmdline1; cmdline2 )
66 :login:Penguin :2021/07/30(金) 11:42:44.94 ID:nK/W8CHf.net >>65 たしかに。w そう書いたときもあったのに、なぜかなんか別物あつかいでした。 ありがとう。
67 :login:Penguin :2021/08/01(日) 13:30:05.46 ID:yremFR/t.net #!/bin/sh -xってやると評価結果とかが色々表示されるけど、 スクリプトの中で別のスクリプト呼んでるような時に その呼ばれたスクリプトも含めて色々表示させる方法ってありますか そのスクリプトにいちいち-x付けてると面倒だし消し忘れとかもあるかなと /bin/shを、/bin/sh -xして動かすようなものにしてみたけど 全てのシェルスクリプトの動作が変わり、OSがおかしくなって後悔した
68 :login:Penguin :2021/08/02(月) 04:10:48.82 ID:4HLiG8xo.net 簡単な方法は思いつかないけど… MY_DEBUG みたいな適当な環境変数でも使って、呼ばれるスクリプトの冒頭で if [[ -n MY_DEBUG ]]; then set -x; fi みたいにするとか。
69 :login:Penguin :2021/08/02(月) 04:32:43.59 ID:FScFnmXW.net なんでそんなにデバッグコードを仕込みたくないのか分からんが、どうしてもと言うなら sed -f inject_debug_cmd.sed production_code.sh | sh -s ファイル全部-xデバッグはちょっとアウトプット多すぎて辛いと思うけど 変な動きしてるブロックを囲んで、単語分割が予想通りかくらいしか確かめるくらい まあそこが一番のハマりどころだから重宝するが
70 :login:Penguin :2021/08/02(月) 04:41:51.79 ID:FScFnmXW.net 最終的に残らなければいいだけなら、デバッグコードの行末にでも#dbgみたいなタグ付けといて、edでインプレースに消せばいいと思うけど ソースツリー全体のシバンを消し忘れたくないだけならfind -name \*.shとかで列挙してデストロイ
71 :login:Penguin :2021/08/02(月) 21:04:35.17 ID:G1slmfmk.net >>67 > /bin/shを、/bin/sh -xして動かすようなものにしてみたけど そういう方向なら、もうちょっと凝って、呼び出し側のパスや特定の環境変数を見て切り替わるようにすればいいんでは。 無差別にやるから、init.rcとかで壊れるんやろ。
72 :login:Penguin :2021/08/03(火) 17:17:31.55 ID:D5seBhyr.net Bashのsourceコマンドについて確認。 source内では、その呼び出し側で設定していたset -eとか-uは無効? source対象は、呼び出し側で実行されるんだから、それ以前のsetオプションは有効のままだと思ってたけど、実際にはそうではなかったみたいなので。
73 :login:Penguin :2021/08/04(水) 01:07:23.38 ID:WvUJWj2l.net 確認( ー`дー´)キリッ ソース読めよsourceだろ?
74 :login:Penguin :2021/08/04(水) 18:00:30.36 ID:+0tgCecS.net >>72 自分でテストしろ
75 :login:Penguin :2021/08/04(水) 18:07:10.99 ID:+0tgCecS.net >>67 仮にシェルスクリプトの中でzcatコマンド使っているとして そのzcatコマンドがシェルスクリプトだったらどうすんの? zcatコマンドもデバッグログ出ても問題ないんか?
76 :login:Penguin :2021/08/04(水) 18:12:17.43 ID:MbNyhIMz.net >>75 > 後悔した と書かれてあるだろう。
77 :login:Penguin :2021/08/04(水) 18:13:46.82 ID:+0tgCecS.net >>76 後悔したあとに 何をしたいと言ってるのか よく考えてみよう
78 :login:Penguin :2021/08/04(水) 18:25:48.40 ID:MbNyhIMz.net >>77 ○○なのか。後悔しない別の方法を探しているのだろう。
79 :login:Penguin :2021/08/04(水) 18:55:26.52 ID:+0tgCecS.net だから後悔しない別の方法を探してるやつに 教えてやってんだろ
80 :login:Penguin :2021/08/04(水) 20:28:55.97 ID:MbNyhIMz.net >>78 後悔しない別の方法がこれか。 > デバッグログ出ても問題ないんか? 数時間前の自身の発言すら記憶にないわけか。本物だな。
81 :login:Penguin :2021/08/04(水) 21:50:09.74 ID:+0tgCecS.net ヤバイwこいつマジで日本語わかってないw ワクチン打ちたくないって言ってる人に コロナで死んでも問題ないんか?って言ったら コロナで死ぬこと=後悔しないことだと思っちゃう人か
82 :login:Penguin :2021/08/05(木) 01:52:55.30 ID:wTkH8tWI.net >>81 アホくさ。さらしage >>67 (質問者) > /bin/shを、/bin/sh -xして動かすようなものにしてみたけど > 全てのシェルスクリプトの動作が変わり、OSがおかしくなって後悔した >>75 (オマエ) > 仮にシェルスクリプトの中でzcatコマンド使っているとして > そのzcatコマンドがシェルスクリプトだったらどうすんの? > zcatコマンドもデバッグログ出ても問題ないんか?
83 :login:Penguin :2021/08/05(木) 10:14:38.35 ID:ArLNvaBB.net >>82 そこは質問じゃねーだろ アホなのはお前だよ >>67 (質問者) > #!/bin/sh -xってやると評価結果とかが色々表示されるけど、 > スクリプトの中で別のスクリプト呼んでるような時に > その呼ばれたスクリプトも含めて色々表示させる方法ってありますか ↓こっちは質問じゃなくて経緯 > /bin/shを、/bin/sh -xして動かすようなものにしてみたけど > 全てのシェルスクリプトの動作が変わり、OSがおかしくなって後悔した 後悔したから、それ以外の方法で > スクリプトの中で別のスクリプト呼んでるような時に > その呼ばれたスクリプトも含めて色々表示させる方法ってありますか って聞いてんだよ 日本語勉強しな
84 :login:Penguin :2021/08/05(木) 18:22:33.65 ID:wTkH8tWI.net >>83 何が、そこは質問じゃねーだよ。 つまり、質問を全文読まなかったため、質問者の後悔した事とほぼ同内容のレスを、当の質問者に返してしまったというオチか。 なんだか言い訳すればするほど語るに落ちるやつだな。
85 :login:Penguin :2021/08/05(木) 18:41:49.01 ID:amyLRgLX.net 語るに落ちるって、、
86 :login:Penguin :2021/08/06(金) 04:06:13.46 ID:01/4SE7K.net ああ、「質問者の後悔した事とほぼ同内容のレス」だと思ってんのか これこそ語るに落ちるだな
87 :login:Penguin :2021/08/06(金) 04:11:09.65 ID:01/4SE7K.net 質問者は/bin/shを/bin/sh -x に変えたからだめだと思ってんだよ だから「後悔した後に」特定のスクリプト以下なら大丈夫だろうと思って質問してるんだろ だからそれじゃだめだよってzcatの実例を出してるんだろ まったく本当に理解力がないやつだな
88 :login:Penguin :2021/08/06(金) 06:11:49.17 ID:JRdsxYSZ.net そこまで大規模な調査をするのなら、神ツール・strace でも使えば? バグの場所を突き止めることは、同じ
89 :login:Penguin :2021/08/06(金) 18:35:53.85 ID:8QWMGd91.net >>86 どんどん落ちるね。 > 全てのシェルスクリプトの動作が変わり、OSがおかしくなって後悔した と、想定外のスクリプトへの影響を悔いているところに、想定外のzcatスクリプトもありまっせなんてのは言わずもがな。 質問者の後悔を再提示しているだけだよ。お前の中では懸隔しているとしてもね。
90 :login:Penguin :2021/08/07(土) 01:18:14.18 ID:eQXGjGlL.net >>89 この2行も読めないの? > だから「後悔した後に」特定のスクリプト以下なら大丈夫だろうと思って質問してるんだろ > だからそれじゃだめだよってzcatの実例を出してるんだろ 質問者が後悔したあとに またやろうとしてるんだから 再提示するのは当たり前やろw zcatの問題に気づいてないんだから
91 :login:Penguin :2021/08/07(土) 06:40:17.95 ID:bukJwykK.net >>90 また落ちた。それはお前の空想。 質問者は > またやろうとして いない。「色々表示させる方法」を尋ねている。表示させる方法イコールsh -xはお前の短絡思考。 まぁ想定外スクリプトも、質問者は言及済みであり、余人には言うまでもない当然の事でバカバカしい限りだが、お前の中では蒸し返す必要のある重要事だったんだろう。 無用の親切だが、親切であるのは悪いことではない。
92 :login:Penguin :2021/08/07(土) 08:36:34.67 ID:eQXGjGlL.net > 表示させる方法イコールsh -xはお前の短絡思考。 表示させる方法イコールsh -xなんて 一言も書いてないんだが それこそお前の短絡思考じゃんw
93 :login:Penguin :2021/08/07(土) 08:37:18.30 ID:eQXGjGlL.net > まぁ想定外スクリプトも、質問者は言及済みであり どこにも言及されてない
94 :login:Penguin :2021/08/08(日) 16:34:09.41 ID:uaAZpGm/.net set -x export SHELLOPTS じゃだめなん?
95 :login:Penguin :2022/02/01(火) 04:05:13.76 ID:3LA5ehtE.net WLANのデバイス名を環境変数に入れたいんだけど、どうすればいい?
96 :login:Penguin :2022/02/01(火) 13:11:21.77 ID:Jt/r8+cT.net WLANのデバイス名の取得の仕方か 知らんな
97 :login:Penguin :2022/02/03(木) 13:41:25.48 ID:UJnTdaDv.net ifconfigかiwconfigの出力をawkで加工して環境変数にセット
98 :login:Penguin :2022/02/22(火) 19:14:57.59 ID:rLLu1q4J.net yumで、パッケージ内の特定ファイルだけをインストールする方法はある? パッケージファイルをダウンロードしてからrpmコマンドで特定ファイルを抽出したらいいんだけど、もっとあっさりしたやりかたはないんかなー、と。
99 :login:Penguin :2022/02/23(水) 02:31:26.98 ID:kQJL8BkX.net そんな機能需要あるんか?
100 :login:Penguin :2022/02/23(水) 13:13:15.40 ID:C0MAsSUq.net パッケージにもいろいろあるからな。 スクリプトつめあわせみたいなのから、いくつかだけ選ぶことはあってもよさそう。
101 :login:Penguin :2022/02/23(水) 15:08:34.10 ID:kQJL8BkX.net ディスク容量の節約でもしたいってこと? それならalpineとか使うべきだろう
102 :login:Penguin :2022/02/23(水) 16:06:10.98 ID:C0MAsSUq.net おまえはそうしたいならそうしろ。 需要の有無ならある、て話。
103 :login:Penguin :2022/02/24(木) 04:29:15.80 ID:zujeXimD.net なんのためにそうしたいのか聞いただけでこの反応w やることが目的になってんのな
104 :login:Penguin :2022/02/24(木) 05:06:58.27 ID:36R3x1i1.net なにがどうシェルスクリプトに関連するのか全然わからん
105 :login:Penguin :2023/04/29(土) 15:20:27.08 ID:lnHHFRE1.net <main> <sub_aaa id=A> <sub_bbb> </sub_bbb> </sub_aaa> <sub_aaa id=B> <sub_ccc> </sub_ccc> </sub_aaa> </main> を A.xml B.xml <main> <main> <sub_aaa id=A> <sub_aaa id=B> <sub_bbb> <sub_ccc> </sub_bbb> </sub_ccc> </sub_aaa> </sub_aaa> </main> </main> と言った感じで<sub_aaa>タグ毎にファイル出力する方法教えてください。
106 :login:Penguin :2023/04/29(土) 19:13:08.50 ID:lnHHFRE1.net すみません スペースで埋めたところがスペース1個文しかインデントできてなくて見にくくてすみません。
107 :login:Penguin :2023/04/30(日) 10:10:26.58 ID:aW8IbgMG.net シェルスクリプトって文字列を""で囲まなくてもいいんですか?
108 :login:Penguin :2023/05/01(月) 10:46:14.14 ID:+eCh8O00.net >>105 cat ab.xml | sed -n '/<sub_aaa/,/<\/sub_aaa/'p | awk -F[=\>] '/<sub_aaa/{OUT=$2}{print $0 >> OUT".xml"}'
109 :login:Penguin :2023/05/03(水) 09:13:40.18 ID:jDZJyj+d.net >>108 ありがとうございます
110 :login:Penguin :2023/08/03(木) 22:45:13.09 ID:NDiGHoK1.net シェルスクリプトで教えてください ファイル中の文字について、以下のような置換をしたいです 前 後 a →X b →U c →E d →P ::: y →A z →M 前と後は1:1なのですが、変換後の並びは不規則です sed -e 's/a/X/g' -e 's/b/U/g' 〜〜〜 とaからzまで並べることで 一応置換はできるのですが、長大な行となってしまっており、 どうにかならないかと思ってます
111 :login:Penguin :2023/08/08(火) 20:00:07.01 ID:A0ngI8KS.net trコマンドが良いよ
112 :login:Penguin :2023/08/08(火) 22:07:51.95 ID:W7teOVBr.net >>110 cat filename | tr [a-z] [XUEP〜AM] というのはどうだろう
113 :login:Penguin :2023/09/21(木) 10:24:58.83 ID:QknJaCcR.net mvを常にmv -iで実行するようにしたいのですがどうすればいいですか
114 :login:Penguin :2023/09/21(木) 18:47:10.64 ID:Vez6r55J.net >113 "常に"がどういう意味かによる ターミナルから自分の手でmvするとき常になのか、自分のユーザー名でmvするとき常になのか、全てのユーザーがmvするとき常になのか たぶん下記のようにすればいいんだろうけどなにか副作用があるかもしれない $ cat ~/.bashrc mv() { command -p mv -i "$@"; } #or mv() { /usr/bin/mv -i "$@"; } $ cat ~/bin/mv #!/bin/sh /usr/bin/mv -i "$@" $ cat /usr/local/bin/mv #!/bin/sh /usr/bin/mv -i "$@"
115 :login:Penguin :2023/09/22(金) 17:12:51.79 ID:Ot0FYrO8.net ありがとうございます なるほど、あまり影響が大きいのは怖いですね、一番上がよさそうですね 強制的にリネームするときはmv -fとやるという運用を考えています
116 :login:Penguin :2024/01/01(月) 04:07:52.94 ID:U28b5u0i.net コマンドラインより与えられ、$1や$2等に入れられたオプションを 以下のように表示したいと思ってます ./aaa.sh a bb ccc $1=a $2=bb $3=ccc 以下のようなスクリプトで「$n=」まではできたのですが、その後のxxxxにあたる、 位置パラメータを示す$と、変数iを組み合わせてできた「$1」を 更に評価した結果である「a」や「bb」を得る方法が分かりません #!/bin/bash for i in `seq 1 $#`; do echo "\$${i}=xxxx" done どのようにすればよいか教えてください
117 :login:Penguin :2024/01/01(月) 21:58:23.87 ID:d2imTNCC.net >116 やりたいことを実現するだけなら、難しく考えずに最初の引数を表示したらshiftすればいいと思う for i in $(seq 1 $#) do echo "\$$((i))=\"${1}\"" shift done
118 :login:Penguin :2024/01/31(水) 20:12:54.00 ID:E0KTKxgk.net 引数が無限みたいな前提の書き方はやめた方がいい
119 :login:Penguin :2024/01/31(水) 20:15:40.65 ID:E0KTKxgk.net >>116 オプションの概念がないのか? 引数の順番だけで判断すると、複雑なものになって想定外の使われ方、使い方をしてしまう
120 :sage :2024/02/01(木) 04:56:02.13 ID:Qr69cuyL.net #/bin/sh for i in `seq 1 $#`; do eval echo \\\$$i=\$${i} done
121 :login:Penguin :2024/02/23(金) 20:08:14.18 ID:rMPWJsz1.net ラズパイOSの起動時にシェルが自動で動くよう試しています 打ち込みでシェルの内容が動くことは確認できるのですが、cronやsystemd では、思うように動きません。シェルの内容がおかしいのでしょうか #!/bin/sh cd /home/dtt/google-home-player/ nohup lt -s modulenotfound -p 3000 >/dev/null 2>&1 & nohup /usr/local/bin/node server_for_line.js >/dev/null 2>&1 &
122 :login:Penguin :2024/02/24(土) 23:29:05.40 ID:gz5QbA2v.net nohupコマンドを使っているが、フォアグラウンドとバックグラウンドもわかってないのかな?
123 :login:Penguin :2024/02/25(日) 21:48:03.30 ID:yfGJdlYS.net >>122 hpのコピペなんで。systemdとforeverで分けて
34 KB
新着レスの表示
掲示板に戻る
全部
前100
次100
最新50
read.cgi ver 2014.07.20.01.SC 2014/07/20 D ★
本文 スレッドタイトル 投稿者