シェルスクリプト総合 その26 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
シェルスクリプトの総合スレです。
□お約束
・特記なき場合はBourne Shell(/bin/sh)がデフォルトです。
bash/zsh/ksh/ashなどに依存する場合は明示しましょう。
Linuxユーザは/bin/shの正体がbashまたはdashなので特に注意。
FreeBSDユーザは/bin/shの正体がashなので注意。
v7 shに一番近くて、現役のshは、OpenSolaris由来のheirloom sh。
http://src.illumos.org/source/xref/illumos-gate/usr/src/cmd/sh/
http://heirloom.sourceforge.net/sh.html
・csh/tcshのシェルスクリプトは推奨されません。
(理由は「csh-whynot」でググれ)
・UNIXにはシェルスクリプトに便利な小さなコマンドがいろいろあります。
manや参考リンクを見ましょう。
aproposないしはman -kでそれらしい単語による簡単な検索もできます。
・シェルで使えるワイルドカード等は正規表現ではありません。
正規表現の話題はスレ違い(正規表現スレへ)
・シェルスクリプトのことをシェルってゆーな
□初心者へのアドバイス:
・適した道具を判断するのも頭の重要な使い方。シェルスクリプトよりも
awkまたはperlの方が適した処理にはそちらを使いましょう。
・知らないコマンドが出てきたらmanを引きましょう。
・思い通りに動かないときは、まずは sh -x でトレースしましょう。
□回答者への注意事項:
・シェルスクリプトでの処理方法を質問しているのに、よくわからずに
「そういうのはperl使いましょう」と回答するのはやめましょう。
安易にperlに逃げずにシェルスクリプトで処理するのが頭のいいやり方。
前スレ
シェルスクリプト総合 その25
http://echo.2ch.net/test/read.cgi/unix/1439563321/ historyから所定のコマンドだけ削除するシェルスクリプトってあったりする? >>80
ほほう -d オプションというものがあるのか……と思ったんだけど、これって bash のみだったりする?
手元の古い tcsh には無いみたい。それとも最近のシェルなら普通に実装されてるのかな。 >>78
こういうのって、fgrepにIをつけたほうがいいのかな。 >>84
ありがとうございます
昔、binの中等気をつけろと言われた事があったので勘違いしてました >>75
なんでexceptionでno_data_foundを拾わないのか?
カウントしてしまうのは、不慣れなひとがよくやるけど。 この中で過去にシェルを仕事でやってたって人何人くらいいるのかな 自分はインフラ関連やってたよ
今は仕事ではコンソール触ることはなくなったけど
家で動画ダウンロード用のスクリプト組んだりしてる ちなみに性能情報の収集や監視スクリプト、
バックアップとかの運用シェル作ってたけど
可読性も考えてオーソドックスなプログラミングのような書き方をしてたから
超何かよく分からん使い方をしてるココの人の方がシェルスクリプト知ってると思う >>94
よくわからない書き方してるほうが上手いとも言えないでしょ linuxってちゃんと使いこなせれば快適だよなすごいわかる >>92
shだけの仕事は数えるほどしかないけど
他の仕事の小道具として毎回のように出てくるな
javaとかwindows系の仕事だと使えなくてめんどくさい
開発ツールとしては使うけど 仕事でシェルスクリプト書くなんて
めずらしくもなんともないよ >>98
めずらしいとは思ってないけどさ、働いてないのかと思った。
何かしら経験ある人もいるのな、仕事で使ってて家でもシェルいじろうとかよく思えるな >>99
手間とかを省くために使うからプライベートだろうと使うだろう
その発想は使わされてる人のものだと思うぞ 仕事か家かどっちかでしか使っちゃダメなの?
便利なんだからいろんなとこで使ってもいいじゃん >>99
俺は職場から2ちゃんに書き込んでるだけだよ。 学生でもなくて働いたことも無いならシェルいじろうとは思わないでしょ 他紙蟹
わかったからそんなせめんなよごめんなっっ
家でシェル使ってる人ってwindows機は別にあるの? あるよ、自分はWindowsなんて使わないという偏屈ではないしさ
Linuxの実機はラズパイだけであとは仮想環境
まあ他にも色々あるけど実際に使ってる環境ってことならね
>>103を書いたのは嫌気がさして書いたんじゃなくて
目的や知識がないとシェルなんて触る機会もないでしょって意味で書いた ubuntu on the windowsのおまえらの率直な感想が聞きたい 【Bash】Windows Subsystem for Linux【Ubuntu】2©2ch.net
http://hayabusa6.2ch.net/test/read.cgi/linux/1468149353/ >>103
便利なもんなんだから使うだろう
知ってて環境あって使いどころあれば >>108
そんな向上心があるなら学ぶか働いてるでしょ >>110
そういう学科の学生かそういう業務の仕事でなくても使う人は使うってことじゃないの >>109
やるじゃんそーゆー振り切ってる感じ好きだぜ >>111
そうは言ってなかったな、シェルなんて職場で使わなきゃやろうと思わないでしょって言ってたよ ぶっちゃけLinuxだけだと不便やねん、だからどっちもいるねん、必須なのはWindowsやねん、結局便利だけどLinuxは無くてもいけるねん >>113
仕事も勉強も関係なくエロ画像収集に使うだろ
初めてはSSIとかCGIだったな
ISPでシェルアカウント付きのとこもあった
やらされてるだけの人には価値はわからんだろうけど >>116
VBとかで出来るからね
シェルを使うにはUnix環境が必要で
知識ゼロのニートが自主的にやったってのは知らないなあ
Unix界隈に居る人って性格悪いじゃん?
そんな中で続くとは思えないんだけど
学生か働いてる(働いてた)時に得た知識でやるならわかるけどさ 画像収集ツールって昔からいくつかあるけど
それを使わずにシェルスクリプト使った人が今何してるのか興味あるな
自分はOSもアプリも言語も道具だから何でもいいんだけど
獲得したものを特別なものと思って他人を見下すってのは余裕のない感じがするね
そのあたりがLinuxが流行らなかった理由なんじゃないかと思う
スマホ使ってる人なんてニコニコしながら嫌味無く教えてくれるときあるしw やらされてるだけの人って嫌味なんだろうけど
ココで答えてくれてる人はそんな人なこと忘れてるよ
失礼な奴だな シェルスクリプトを作れない人がやっかんでるだけに見えるな
画像収集ツールみたいなことをする場合、Windowsアプリも
cygwonでシェルスクリプト+コマンドのパターンも使う
一方しか出来ない人は時間を損してると思うよ 暇つぶしに聞いただけだろう
現役で職場でシェルスクリプト使う身からすると奇妙な質問には思えるが
これがCOBOLとかなら話分かったけど 画像収集ツールってWindowsで動く既存アプリがいくつもあるんだよ〜
自分はシェルスクリプトを否定はしていない
でも学んでも働いても無かった人(要するにシェルを使ってなかった人)が
画像収集するためにいきなりシェルを使うとは思えないんだな
シェルスクリプトに行き着くためには
UnixなりりLinuxなりCygwin、BoW、Services for UNIXが必要になるわけであって
画像収集するのに便利って言うのは違和感がある
そういう人が本当に使ってるとして今どのレベルなのかも興味があるね
まだ画像収集レベルなのかな?
まあ別に目的を達せられたら良いんだけどね(で振り出しに戻ると) ちなみに自分は学んだし仕事でやってたよ
だから実装は楽だしやらせたいことを自動でやらせるためにスクリプト組んでるね すまん、結局何が言いたいのか分からん
これは単にシェルスクリプト使ってるのを見下したいだけなのか? 自分が使える道具を、使うと何かの目的が達せられるところで使うだけだよ
環境、能力、目的は人によるから想像力の欠如をアピールしてもしょうがない >>118
CGIやSSIやISPはweb関連だ
wwwの世界はUnixばかりだからな
で何もなかった昔のwwwではCGIの設置改造とか普通
どうやって動いてるのかとか興味を持って調べた奴も多いだろう
つまり趣味で知った奴もいるってことだ
昔はWindowsでもcygwinとかでシェル使ってたけどな
今はないのかな
VBのツールのメンテとかもしてたけどUnixが吐くデータの処理だったからshで置き換えて効率化したな
やらされてる奴に性格悪い奴がいることはわかった >>129
お前こそ金にならないことやらされてるじゃん なんつうか、こんな話題で長文して結論がそれって
よほど嫌なことあって愚痴りたかったんだろうな >>130
VBのツールの置き換えは仕事だぞ
趣味はお金払ってでもするものだけどな
ただUnixワークステーションとか買えねえよ なんだ結局仕事にしたんじゃん
素人でまだ触ってるかと思った >>137
シェルスクリプトで開発の仕事なんて滅多にないよ
お前は無職? いやなんで煽るんだよ
お前何しにこのスレ来たんだよ 開発経験者が趣味でシェルスクリプト書くって普通だと思う
てっきり営業とか企画とか別分野の人がシェルスクリプト書いたのかと思った 俺もまったくの異業種の奴が言ってるのかと思ったよ
>>116とか見るとね
ニートがエロパワーで頑張ったのかと思ったw バージョン管理とかするだろうし環境作りでUnix使うだろ
どこまで無学なんだよ ワークステーションとか商用Unix知らないのか無学だな くだらない話題で申し訳ないんすけど
シェルスクリプトで使う変数の規則とかってどう決めてます?
自分は_HOGEがいいかなって思ってるんですけど、マジョリティはどうかなと(ここがマジョリティかどうかは別だけど) >>148
とくに名前に規則は設けず、関数内で local 宣言でできるだけ隔離。
気にはなるけど、個人的には実際に問題になったことが無いし、export しなければ大丈夫じゃないか? >>150
シェル内に影響するよ
スクリプトならシェルスクリプト内までその変数が生きる localって業務用なら使うべきなんだろうがいまいち慣れないんだよなぁ
スコープ分けは基本ってのは分かっちゃいるんだがシェルスクリプトはどうもlocal使ったら負けな気がする
すげぇどうでもいいんだけどな >>156
俺にしたって某画像のネタをそのまま貼っつけただけで別に怒っちゃいないぞ echo "${hoge[@]}" | xargs -P 10 -n 1 -J{} echo {} >> test.txt
てやると、期待するファイル内容は
aaa
bbb
ccc
...
なのに
aaa
bbccc
...
となってしまいます。
これを回避するいい方法ないですか? Debian GNU/Linuxでのbashなのですが、指定時間指定ユーザのログインが無ければ
シャットダウンするシェルスクリプト
https://pastebin.com/pJ3v4TYY
を勉強を兼ねて作ってみました。
正常に動作していますが、何か変なところありますか? cronでやってそうだけど
ログインしてたらループ抜けないようになってるから
1日経つと重複起動すると思う
あと指定時刻なのか一定時間なのかはっきりした方がいい
動いてると思ってるならいいんでないの >>162
一定時間です。
/etc/rc.localってcronで1日ごとに起動されるのでしょうか。
PC電源投入後Linux起動時にただ一度だけ実行されると思っているのですが >>161
常駐しないでlastとかでログインしなくなってから何分経ったか毎回計算した方がシンプルじゃない
なんだっけvarの下になんかあったよね >>165
それだと、PC起動直後(lastとかで経過時間計算直後)にシャットダウンが走る可能性があるような >>161
ダメってわけじゃないけど、"$1"と比較するなら grep は要らないはず(12行目)
>>163
一度だけ起動であってる
重複起動とか言ってる人は無知か勘違いなので無視していい
>>165
varの下のなんかってwtmpのこと?
wtmpは確実に更新されるわけじゃないし時間の計算も面倒になるので
>>161の方がシンプルだろうね >>167
確かに仕様通りだね
PC起動してlogin受け付ける前にpoweroffしてしまうようになるだろうけど 15分でシャットダウンって考えられない
まあ習作だからいいんだろうが みなさんありがとう。
>>168
> "$1"と比較するなら grep は要らないはず(12行目)
他ユーザがログインしていても無視してシャットダウンする仕様にしたいのです。
> 一度だけ起動であってる
了解
>>171
> 15分でシャットダウンって考えられない
トイレとかの時、5分ほどかかる自分環境自動バックアップの処理を走らせ
画面ロックして席を立ちます。
席に戻ったらまた作業に戻るのですが、とっさの用事で席に戻れない時は
電源が切れていて欲しいのです。
10分だと下痢の時短いかも。20分もいらない。だから15分。
画面ロック(ログイン状態)の時に電源切断するのは気持ち悪いので
ログオフ状態の時に切れるようにしたいのです。
(そのため、バックアップ処理完了後は自動でログオフされるようにしています)
ちなみにWindowsではそういう自作ServiceをCで書いて走らせています。
Linuxは簡単ですね。 タイムカードの無い現場で ふらっと早退してやろうって感じなのかね そんなんならサスペンドでいいじゃん
久しくシャットダウンしてないや Windows簡単だと思うけどな
Cならコンパイルとかの環境が必要だけど所詮慣れだし
Cなんか使わずにVBScript使えばいいんじゃないの Windowsは簡単だな諦めるしかすることないから ■ このスレッドは過去ログ倉庫に格納されています