X



シェルスクリプト総合 その26 [無断転載禁止]©2ch.net
■ このスレッドは過去ログ倉庫に格納されています
0001名無しさん@お腹いっぱい。
垢版 |
2017/03/20(月) 12:07:26.41
シェルスクリプトの総合スレです。
□お約束
・特記なき場合は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/
0081名無しさん@お腹いっぱい。
垢版 |
2017/04/18(火) 17:45:32.71
>>80
ほほう -d オプションというものがあるのか……と思ったんだけど、これって bash のみだったりする?
手元の古い tcsh には無いみたい。それとも最近のシェルなら普通に実装されてるのかな。
0083名無しさん@お腹いっぱい。
垢版 |
2017/04/19(水) 12:00:20.42
>>78
こういうのって、fgrepにIをつけたほうがいいのかな。
0085名無しさん@お腹いっぱい。
垢版 |
2017/04/19(水) 12:41:43.72
>>84
ありがとうございます
昔、binの中等気をつけろと言われた事があったので勘違いしてました
0086名無しさん@お腹いっぱい。
垢版 |
2017/04/19(水) 16:28:25.43
>>75
なんでexceptionでno_data_foundを拾わないのか?

カウントしてしまうのは、不慣れなひとがよくやるけど。
0091名無しさん@お腹いっぱい。
垢版 |
2017/04/21(金) 17:16:08.95
>>88
え?
0092名無しさん@お腹いっぱい。
垢版 |
2017/04/21(金) 18:35:17.79
この中で過去にシェルを仕事でやってたって人何人くらいいるのかな
0093名無しさん@お腹いっぱい。
垢版 |
2017/04/21(金) 21:31:36.96
自分はインフラ関連やってたよ
今は仕事ではコンソール触ることはなくなったけど
家で動画ダウンロード用のスクリプト組んだりしてる
0094名無しさん@お腹いっぱい。
垢版 |
2017/04/21(金) 21:34:59.83
ちなみに性能情報の収集や監視スクリプト、
バックアップとかの運用シェル作ってたけど
可読性も考えてオーソドックスなプログラミングのような書き方をしてたから
超何かよく分からん使い方をしてるココの人の方がシェルスクリプト知ってると思う
0095名無しさん@お腹いっぱい。
垢版 |
2017/04/22(土) 04:52:18.92
>>94
よくわからない書き方してるほうが上手いとも言えないでしょ
0096名無しさん@お腹いっぱい。
垢版 |
2017/04/22(土) 04:53:18.13
linuxってちゃんと使いこなせれば快適だよなすごいわかる
0097名無しさん@お腹いっぱい。
垢版 |
2017/04/22(土) 05:55:28.79
>>92
shだけの仕事は数えるほどしかないけど
他の仕事の小道具として毎回のように出てくるな
javaとかwindows系の仕事だと使えなくてめんどくさい
開発ツールとしては使うけど
0099名無しさん@お腹いっぱい。
垢版 |
2017/04/22(土) 19:43:27.62
>>98
めずらしいとは思ってないけどさ、働いてないのかと思った。
何かしら経験ある人もいるのな、仕事で使ってて家でもシェルいじろうとかよく思えるな
0104名無しさん@お腹いっぱい。
垢版 |
2017/04/24(月) 16:02:53.74
他紙蟹
わかったからそんなせめんなよごめんなっっ
家でシェル使ってる人ってwindows機は別にあるの?
0105名無しさん@お腹いっぱい。
垢版 |
2017/04/24(月) 17:31:59.58
あるよ、自分はWindowsなんて使わないという偏屈ではないしさ
Linuxの実機はラズパイだけであとは仮想環境
まあ他にも色々あるけど実際に使ってる環境ってことならね
>>103を書いたのは嫌気がさして書いたんじゃなくて
目的や知識がないとシェルなんて触る機会もないでしょって意味で書いた
0106名無しさん@お腹いっぱい。
垢版 |
2017/04/24(月) 17:49:44.72
ubuntu on the windowsのおまえらの率直な感想が聞きたい
0112名無しさん@お腹いっぱい。
垢版 |
2017/04/25(火) 00:43:15.05
>>109
やるじゃんそーゆー振り切ってる感じ好きだぜ
0113名無しさん@お腹いっぱい。
垢版 |
2017/04/25(火) 00:49:06.70
>>111
そうは言ってなかったな、シェルなんて職場で使わなきゃやろうと思わないでしょって言ってたよ
0114名無しさん@お腹いっぱい。
垢版 |
2017/04/25(火) 00:51:05.94
ぶっちゃけLinuxだけだと不便やねん、だからどっちもいるねん、必須なのはWindowsやねん、結局便利だけどLinuxは無くてもいけるねん
0116名無しさん@お腹いっぱい。
垢版 |
2017/04/25(火) 01:15:23.26
>>113
仕事も勉強も関係なくエロ画像収集に使うだろ
初めてはSSIとかCGIだったな
ISPでシェルアカウント付きのとこもあった
やらされてるだけの人には価値はわからんだろうけど
0118名無しさん@お腹いっぱい。
垢版 |
2017/04/25(火) 05:48:06.67
>>116
VBとかで出来るからね
シェルを使うにはUnix環境が必要で
知識ゼロのニートが自主的にやったってのは知らないなあ
Unix界隈に居る人って性格悪いじゃん?
そんな中で続くとは思えないんだけど

学生か働いてる(働いてた)時に得た知識でやるならわかるけどさ
0119名無しさん@お腹いっぱい。
垢版 |
2017/04/25(火) 06:14:57.29
画像収集ツールって昔からいくつかあるけど
それを使わずにシェルスクリプト使った人が今何してるのか興味あるな

自分はOSもアプリも言語も道具だから何でもいいんだけど
獲得したものを特別なものと思って他人を見下すってのは余裕のない感じがするね
そのあたりがLinuxが流行らなかった理由なんじゃないかと思う
スマホ使ってる人なんてニコニコしながら嫌味無く教えてくれるときあるしw
0120名無しさん@お腹いっぱい。
垢版 |
2017/04/25(火) 06:32:05.73
やらされてるだけの人って嫌味なんだろうけど
ココで答えてくれてる人はそんな人なこと忘れてるよ
失礼な奴だな
0121名無しさん@お腹いっぱい。
垢版 |
2017/04/25(火) 09:39:07.19
シェルスクリプトを作れない人がやっかんでるだけに見えるな

画像収集ツールみたいなことをする場合、Windowsアプリも
cygwonでシェルスクリプト+コマンドのパターンも使う
一方しか出来ない人は時間を損してると思うよ
0122名無しさん@お腹いっぱい。
垢版 |
2017/04/25(火) 09:44:08.16
暇つぶしに聞いただけだろう
現役で職場でシェルスクリプト使う身からすると奇妙な質問には思えるが
これがCOBOLとかなら話分かったけど
0123名無しさん@お腹いっぱい。
垢版 |
2017/04/25(火) 10:09:42.40
>>118
Unix界隈の人は性格悪いってま?
0125名無しさん@お腹いっぱい。
垢版 |
2017/04/25(火) 10:29:48.93
画像収集ツールってWindowsで動く既存アプリがいくつもあるんだよ〜
自分はシェルスクリプトを否定はしていない

でも学んでも働いても無かった人(要するにシェルを使ってなかった人)が
画像収集するためにいきなりシェルを使うとは思えないんだな
シェルスクリプトに行き着くためには
UnixなりりLinuxなりCygwin、BoW、Services for UNIXが必要になるわけであって
画像収集するのに便利って言うのは違和感がある
そういう人が本当に使ってるとして今どのレベルなのかも興味があるね

まだ画像収集レベルなのかな?

まあ別に目的を達せられたら良いんだけどね(で振り出しに戻ると)
0126名無しさん@お腹いっぱい。
垢版 |
2017/04/25(火) 10:31:54.24
ちなみに自分は学んだし仕事でやってたよ
だから実装は楽だしやらせたいことを自動でやらせるためにスクリプト組んでるね
0127名無しさん@お腹いっぱい。
垢版 |
2017/04/25(火) 10:40:20.49
すまん、結局何が言いたいのか分からん
これは単にシェルスクリプト使ってるのを見下したいだけなのか?
0128名無しさん@お腹いっぱい。
垢版 |
2017/04/25(火) 10:46:20.83
自分が使える道具を、使うと何かの目的が達せられるところで使うだけだよ
環境、能力、目的は人によるから想像力の欠如をアピールしてもしょうがない
0129名無しさん@お腹いっぱい。
垢版 |
2017/04/25(火) 11:20:26.09
>>118
CGIやSSIやISPはweb関連だ
wwwの世界はUnixばかりだからな
で何もなかった昔のwwwではCGIの設置改造とか普通
どうやって動いてるのかとか興味を持って調べた奴も多いだろう
つまり趣味で知った奴もいるってことだ

昔はWindowsでもcygwinとかでシェル使ってたけどな
今はないのかな
VBのツールのメンテとかもしてたけどUnixが吐くデータの処理だったからshで置き換えて効率化したな

やらされてる奴に性格悪い奴がいることはわかった
0133名無しさん@お腹いっぱい。
垢版 |
2017/04/25(火) 14:42:58.20
>>105
ラズパイってむずい?
0135名無しさん@お腹いっぱい。
垢版 |
2017/04/25(火) 15:04:11.72
>>130
VBのツールの置き換えは仕事だぞ
趣味はお金払ってでもするものだけどな
ただUnixワークステーションとか買えねえよ
0141名無しさん@お腹いっぱい。
垢版 |
2017/04/25(火) 17:53:50.03
開発経験者が趣味でシェルスクリプト書くって普通だと思う
てっきり営業とか企画とか別分野の人がシェルスクリプト書いたのかと思った
0148名無しさん@お腹いっぱい。
垢版 |
2017/04/26(水) 01:01:14.37
くだらない話題で申し訳ないんすけど
シェルスクリプトで使う変数の規則とかってどう決めてます?
自分は_HOGEがいいかなって思ってるんですけど、マジョリティはどうかなと(ここがマジョリティかどうかは別だけど)
0150名無しさん@お腹いっぱい。
垢版 |
2017/04/26(水) 08:25:15.17
>>148
とくに名前に規則は設けず、関数内で local 宣言でできるだけ隔離。
気にはなるけど、個人的には実際に問題になったことが無いし、export しなければ大丈夫じゃないか?
0151名無しさん@お腹いっぱい。
垢版 |
2017/04/26(水) 08:45:28.91
>>150
シェル内に影響するよ
スクリプトならシェルスクリプト内までその変数が生きる
0152名無しさん@お腹いっぱい。
垢版 |
2017/04/26(水) 08:52:37.57
localって業務用なら使うべきなんだろうがいまいち慣れないんだよなぁ
スコープ分けは基本ってのは分かっちゃいるんだがシェルスクリプトはどうもlocal使ったら負けな気がする
すげぇどうでもいいんだけどな
0154名無しさん@お腹いっぱい。
垢版 |
2017/04/27(木) 08:52:30.15
おまえらただのニートじゃなさそうだな
0156名無しさん@お腹いっぱい。
垢版 |
2017/04/27(木) 08:59:38.21
>>155
ジョークだろなんでそんなにおこる?
0158名無しさん@お腹いっぱい。
垢版 |
2017/04/27(木) 09:25:43.77
>>157
こりゃ一本取られたな
0159名無しさん@お腹いっぱい。
垢版 |
2017/05/06(土) 16:52:42.42
echo "${hoge[@]}" | xargs -P 10 -n 1 -J{} echo {} >> test.txt
てやると、期待するファイル内容は
aaa
bbb
ccc
...
なのに
aaa
bbccc
...
となってしまいます。
これを回避するいい方法ないですか?
0161名無しさん@お腹いっぱい。
垢版 |
2017/05/06(土) 19:56:59.36
Debian GNU/Linuxでのbashなのですが、指定時間指定ユーザのログインが無ければ
シャットダウンするシェルスクリプト
https://pastebin.com/pJ3v4TYY
を勉強を兼ねて作ってみました。
正常に動作していますが、何か変なところありますか?
0162名無しさん@お腹いっぱい。
垢版 |
2017/05/06(土) 21:11:07.00
cronでやってそうだけど
ログインしてたらループ抜けないようになってるから
1日経つと重複起動すると思う

あと指定時刻なのか一定時間なのかはっきりした方がいい

動いてると思ってるならいいんでないの
0163名無しさん@お腹いっぱい。
垢版 |
2017/05/06(土) 21:31:34.54
>>162
一定時間です。

/etc/rc.localってcronで1日ごとに起動されるのでしょうか。
PC電源投入後Linux起動時にただ一度だけ実行されると思っているのですが
0165名無しさん@お腹いっぱい。
垢版 |
2017/05/06(土) 23:44:25.36
>>161
常駐しないでlastとかでログインしなくなってから何分経ったか毎回計算した方がシンプルじゃない
なんだっけvarの下になんかあったよね
0168名無しさん@お腹いっぱい。
垢版 |
2017/05/07(日) 03:40:10.15
>>161
ダメってわけじゃないけど、"$1"と比較するなら grep は要らないはず(12行目)

>>163
一度だけ起動であってる
重複起動とか言ってる人は無知か勘違いなので無視していい

>>165
varの下のなんかってwtmpのこと?
wtmpは確実に更新されるわけじゃないし時間の計算も面倒になるので
>>161の方がシンプルだろうね
0174161
垢版 |
2017/05/07(日) 22:15:23.57
みなさんありがとう。

>>168
> "$1"と比較するなら grep は要らないはず(12行目)
他ユーザがログインしていても無視してシャットダウンする仕様にしたいのです。
> 一度だけ起動であってる
了解

>>171
> 15分でシャットダウンって考えられない
トイレとかの時、5分ほどかかる自分環境自動バックアップの処理を走らせ
画面ロックして席を立ちます。
席に戻ったらまた作業に戻るのですが、とっさの用事で席に戻れない時は
電源が切れていて欲しいのです。
10分だと下痢の時短いかも。20分もいらない。だから15分。

画面ロック(ログイン状態)の時に電源切断するのは気持ち悪いので
ログオフ状態の時に切れるようにしたいのです。
(そのため、バックアップ処理完了後は自動でログオフされるようにしています)

ちなみにWindowsではそういう自作ServiceをCで書いて走らせています。
Linuxは簡単ですね。
0177名無しさん@お腹いっぱい。
垢版 |
2017/05/08(月) 07:30:05.34
Windows簡単だと思うけどな
Cならコンパイルとかの環境が必要だけど所詮慣れだし
Cなんか使わずにVBScript使えばいいんじゃないの
■ このスレッドは過去ログ倉庫に格納されています

ニューススポーツなんでも実況