[表示 : 全て 最新50 1-99 101- 201- 301- 401- 501- 601- 701- 801- 901- 1001- 2ch.scのread.cgiへ]
Update time : 02/26 17:47 / Filesize : 258 KB / Number-of Response : 1020
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

シェルスクリプト総合 その25



1 名前:名無しさん@お腹いっぱい。 mailto:sageteoff [2015/08/14(金) 23:42:01.51 .net]
シェルスクリプトの総合スレです。
□お約束
・特記なき場合はBourne Shell(/bin/sh)がデフォルトです。
 bash/zsh/ksh/ashなどに依存する場合は明示しましょう。
 Linuxユーザは/bin/shの正体がbashまたはdashなので特に注意。
 FreeBSDユーザは/bin/shの正体がashなので注意。
 v7 shに一番近くて、現役のshは、OpenSolaris由来のheirloom sh。
  src.illumos.org/source/xref/illumos-gate/usr/src/cmd/sh/
  heirloom.sourceforge.net/sh.html
・csh/tcshのシェルスクリプトは推奨されません。
 (理由は「csh-whynot」でググれ)
・UNIXにはシェルスクリプトに便利な小さなコマンドがいろいろあります。
 manや参考リンクを見ましょう。
 aproposないしはman -kでそれらしい単語による簡単な検索もできます。
・シェルで使えるワイルドカード等は正規表現ではありません。
 正規表現の話題はスレ違い(正規表現スレへ)
・シェルスクリプトのことをシェルってゆーな
□初心者へのアドバイス:
・適した道具を判断するのも頭の重要な使い方。シェルスクリプトよりも
 awkまたはperlの方が適した処理にはそちらを使いましょう。
・知らないコマンドが出てきたらmanを引きましょう。
・思い通りに動かないときは、まずは sh -x でトレースしましょう。
□回答者への注意事項:
・シェルスクリプトでの処理方法を質問しているのに、よくわからずに
 「そういうのはperl使いましょう」と回答するのはやめましょう。
 安易にperlに逃げずにシェルスクリプトで処理するのが頭のいいやり方。
前スレ
シェルスクリプト総合 その24
peace.2ch.net/test/read.cgi/unix/1415634843/

325 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/12/12(土) 20:44:59.01 .net]
楕円曲線暗号、メッセージダイジェスト、asn1デコーダ、エンコーダ、pemエンコーダ、デコーダーが
シェルスクリプトだけで作れない証明は?

326 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/12/12(土) 21:06:08.70 .net]
>>318
作って公開したら全員黙るよ

327 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/12/13(日) 01:42:09.87 .net]
後、共通鍵暗号も要るね
ワクワク

328 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/12/13(日) 02:03:11.75 .net]
なんかガキが出てきて凄そうなキーワード上げてるって感じにしか見えん

329 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/12/13(日) 02:21:22.86 .net]
x509って知ってる?
楕円曲線暗号は必須じゃないけど他は全部必要だよ。

330 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/12/13(日) 03:26:03.62 .net]
っていうか、作り方わかってるなら組めるだろ
自分で作れないものを挙げろよ

331 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/12/13(日) 07:04:17.98 .net]
>>316
man alternatives
man update-alternatives
か何かで調べると --config 以外の非対話的オプションが有るが
それは使えない?

332 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/12/13(日) 07:30:11.14 .net]
>>323
キミが全部作って>>266相当を実証して見せれば、みんな黙るよ

333 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/12/13(日) 08:06:26.59 .net]
他の解決方法でなく
シェルスクリプトで openssl を実現しようと云う発想をする時点で、
しかも条件を提示したんだから解決方法を出せとか

(別の意味で)黙るよね



334 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/12/13(日) 09:08:35.94 .net]
実現不能な提案は妄想って言うんだよ
で、お前は実装できるの?

335 名前:名無しさん@お腹いっぱい。 mailto:age [2015/12/13(日) 11:05:38.72 .net]
できるよ。無意味だからしないけど。
黙らなくていいよ。グズグズ言い続けて。

336 名前:名無しさん@お腹いっぱい。 [2015/12/13(日) 11:19:13.11 .net]
世界初だから全然無意味じゃない。

337 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/12/13(日) 13:45:47.64 .net]
bashでOSを判別しようと思ってて、シェル変数OSTYPEで判別するのがいいのかなと
思ってるんですが、もっとよい方法ありますか?

あとHP-UX 11iのbashでシェル変数OSTYPEは何になっているか、わかる方はいますか?

338 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/12/13(日) 13:57:10.41 .net]
uname

339 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/12/18(金) 20:07:27.08 .net]
telnet で季節ものを。
telnet ネタコードにネタを重ねています
GNU sleep を使っています

ワンライナー
i=-1; while [ $(( i += 1 )) -le 9 ]; do { sleep 1; printf 'open vt100.net 80\n';\
sleep 3; printf 'GET /animation/xmas'"$i"'.txt HTTP/1.0\n\n'; sleep 3; } | telnet -8\
| while IFS= read -r line; do echo "$line"; sleep 0.08; done; printf \
'Watch More? ( Yes / No ): '; read ans; case "$ans" in n|N|no|NO) i=99;; esac; done

視線が...さ、寒い
良いお年を

そういえばこんなのも
telnet nyancat.dakko.us

340 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/12/18(金) 20:08:17.92 .net]
スクリプト
#!/bin/sh
i=-1
while
 [ $(( i += 1 )) -le 9 ]
do
 {
  sleep 1
  printf 'open vt100.net 80\n'
  sleep 3
  printf 'GET /animation/xmas'"$i"'.txt HTTP/1.0\n\n'
  sleep 3
 } |
  telnet -8 |
  while IFS= read -r line
  do
   echo "$line"
   sleep 0.08
  done
 
 printf 'Watch More? ( Yes / No ): '
 read ans
 case "$ans" in
 n|N|no|NO) i=99;;
 esac
done

341 名前:名無しさん@お腹いっぱい。 [2015/12/19(土) 01:54:54.83 .net]
328が来年のusenixでopenssl相当のシェルスクリプトの実装を発表する

342 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/12/20(日) 02:31:00.77 .net]
それは宣言ですか?絶対当たらなそうな予言ですか?
とりあえずopenssl相当の処理なんて必要かな?
課題的には鯖から落とせればその相手が本物かどうかなんてどうでもいいんじゃない?
と言っても鍵は送る方が指定するみたいから肝心な暗号処理で手抜きは効かなそうだな。
処理自体は計算式で表現できたりする程度のものだけど、数がバカでかいからそのまま丸投げだと無理かも?

343 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/12/20(日) 16:46:55.74 .net]
>>300です。
やっと、コンソールから2chにかきこできるようになりました。
ま、Perl使ってですが。。。
改行ちゃんと入るかな?



344 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/12/20(日) 18:14:25.11 .net]
前スレで質問して、
「UNIXでもメモリクリーニングはできる」と回答をもらった者です。
そこで早速perlを使って、perl -e 'while (1) { fork; }'
を実行してみました。
で、メモリクリーニングはいつ終るのでしょうか?
念のため、PCケースを開けてみましたが、
メモリ表面の汚れは取れていませんでした。
やはりUNIXはメモリクリーニングに対応していないのでしょうか?

345 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/12/20(日) 19:12:40.94 .net]
perl -e "fork while fork" &

346 名前:名無しさん@お腹いっぱい。 [2015/12/20(日) 21:35:35.99 .net]
>>336
cpanのどれ利用した?
それとも使ってない

347 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/12/20(日) 22:33:07.03 .net]
quine
in computing, a program producing its complete source code as its only output without simply opening the source file of the program and printing the contents (such actions are considered cheating).

b=\' c=\\ a='echo -n b=$c$b c=$c$c a=$b$a$b\;; echo $a';echo -n b=$c$b c=$c$c a=$b$a$b\;; echo $a

348 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/12/21(月) 16:40:57.79 .net]
>>337
表面はきれいに見えても、接続口が汚れてることはよくある。
接続部の汚れはなかなか落ちないから4ヶ月ぐらい待ってみて。

349 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/12/21(月) 18:49:28.81 .net]
quine で fork bomb
b=\' c=\\ a='yes $( echo -n b=$c$b c=$c$c a=$b$a$b\;; echo $a ) | sh &';yes $( echo -n b=$c$b c=$c$c a=$b$a$b\;; echo $a ) | sh &


Quine Program
c2.com/cgi/wiki?QuineProgram

350 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/12/21(月) 23:00:15.84 .net]
勉強でシンプルなものを作成しました

#!/bin/bash

while :
do
usr=`id | cut -d

351 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/12/21(月) 23:01:19.62 .net]
勉強でシンプルなものを作成しました

#!/bin/bash

while :
do
usr=`id | cut -d" " -f 1 | sed -e "s/^.*(\(.*\)).*$/\1/g"`
echo -n -e "\033[s"
D=$((`tput cols` - 8))
tput cup 1 $D
COLOR=`tput setaf 4; tput smso`
NORMAL=`tput sgr0`
echo -n $COLOR$usr$NORMAL
echo -n -e "\033[u"
sleep 1
done

右上にユーザーを表示する単純なものです。
ログインユーザーでログインして実行したあとに、sudoでrootになっても右上にはログインユーザーが表示されたままとなります。
これは実行時のユーザーだからだと思うのですが、sudoでrootになった時にはrootに表示を変更する方法はありますでしょうか?

352 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/12/21(月) 23:56:53.33 .net]
id -un
- or -
whoami

353 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/12/22(火) 00:13:25.17 .net]
現在の tty で sudo を使っている場合、その user name を表示したい
とエスパー解釈した上で


usr=`id | cut -d" " -f 1 | sed -e "s/^.*(\(.*\)).*$/\1/g"`
の下にでもこれを挿入

if str=$( ps T -o user,comm | grep [s]udo )
then
 usr=$( echo "$str" | cut -d ' ' -f 1 )
fi



354 名前:344 mailto:sage [2015/12/22(火) 00:15:04.92 .net]
>>345
回答ありがとうございます。

該当部分をid -unやwhoamiに変更しても状況に変化は見られませんでした。
何か間違った書き方をしてしまっているのでしょうか。

355 名前:344 mailto:sage [2015/12/22(火) 00:22:29.80 .net]
>>346
回答いただきありがとうございます。

こちらのほうで実現できました。
psの方から取得するということでしょうか。
whileループの中でidで取得していたので更新されると思っていたのですが
そうでもないようですね。
なぜかは理由はわかりませんが…。

回答いただきありがとうございました。

356 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/12/22(火) 00:45:28.49 .net]
そのスクリプトをバックグラウンドで起動して ps Tf すると分かるかも
10995 pts/0 Ss 0:00 bash
21436 pts/0 S 0:00 \_ /bin/bash ./printUser.sh
8101 pts/0 S 0:00 | \_ sleep 1
8065 pts/0 S 0:00 \_ sudo sleep 10
8066 pts/0 S 0:00 | \_ sleep 10
8102 pts/0 R+ 0:00 \_ ps Tf

対話シェル bash の下でスクリプトが別プロセスで起動されています
sudo sleep 10 を起動していますが、これも別プロセスです

357 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/12/22(火) 08:00:39.33 .net]
PROMPT_COMMAND参照する端末(gnome-terminalやlxterminalなど)だったら
それを使う手もある

以下の内容を適当なファイル(たとえば/etc/bash.display_user)に書いて
D=$((`tput cols` - 8))
POS="`tput cup 1 $D`"
COLOR="`tput setaf 4; tput smso`"
NORMAL="`tput sgr0`"
PROMPT_COMMAND='echo -ne "\033[s$POS${COLOR}${USER}${NORMAL}\033[u"'
/etc/bash.bashrcか自分の.bashrc、rootの.bashrcで
. /etc/bash.display_user
してやればいい

358 名前:348 [2015/12/23(水) 08:30:02.70 .net]
ID変わってますが348です。

その後の回答を、試してみていろいろとわかりました。
Linuxなどにおける動作で幾つか思違いしているところもあり勉強になりました。

ありがとうございました。

359 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/12/23(水) 23:18:50.99 .net]
IDが変わったようには見えないが

360 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/12/23(水) 23:40:21.98 .net]
ていうかIDが見えないが

361 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/12/24(木) 04:08:04.27 .net]
2chMateなら見えるよ

362 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/12/24(木) 12:24:50.59 .net]
本質的でないところでばかり実力を揮発するクラスタの皆さん!
コンニチワ

363 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/12/24(木) 18:48:12.28 .net]
>>353
ワロタw



364 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/12/24(木) 18:59:35.38 .net]
スレ違いすんません。

>>339

>>336です。

LWP::UserAgent;
use HTTP::Request::Common qw(POST);
use HTTP::Cookies;

ggrば出ます。

スレURIの最後の数字列、タイトルから検索して常に最新の数字列を内で取得するようにして、現状、

echo "ほげほげ" | 2ch_put.pl $SURE

で、投稿できるようにしてみた。嵐はしてないよ。

365 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/12/24(木) 19:23:37.34 .net]
>if str=$( ps T -o user,comm | grep [s]udo )

常に0のような気がするが、そうじゃないんだな。
str=aaa や str="" は0だけど、失敗すると1か。
勉強になりますた

366 名前:名無しさん@お腹いっぱい。 [2015/12/25(金) 00:19:36.63 .net]
>>357
thanks

367 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/12/27(日) 12:03:43.83 .net]
=>>290なんですけど>>292の仕組みが理解できてないので誰か解説してくださいませんか?
いつファイルがうまくreadされるタイミングとか

それから関係ないんですけどsedの-iってPOSIX非準拠ですか?

368 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/12/27(日) 12:23:52.45 .net]
-iは引数のあるなしで動かなかったりするな

369 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/12/27(日) 15:36:01.26 .net]
>>360
いつって言ってもgrepがreadした時に読んでるのだが…。
たぶん分かってないのが、unixではファイルをオープンした状態でファイルを削除できるってこと
その場合ディレクトリエントリは消えるがファイル自体は残っているので
ファイルのread/writeは変わらず出来る

370 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/12/27(日) 19:29:04.42 .net]
>>360
外のシェルがopenする
中のシェルでrmがunlinkする
中のシェルがopenしてfileができる
grepがreadしてwriteする
grepがexitしてどっちもcloseする

371 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/12/27(日) 19:29:18.22 .net]
>>362
しかしエントリから消えたハードディスクのブロックは再利用可能な状態なわけですよね?
もしそうなら二回目にオープンしたとき領域が重なってしまうことはないのですか?

372 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/12/27(日) 19:37:36.75 .net]
>>364
closeして誰も参照しなくなるまではi-nodeも含めて再利用されないよ

373 名前:名無しさん@お腹いっぱい。 mailto:sage [2015/12/27(日) 19:56:03.56 .net]
>>365
そうなのですか!初めて知りました
ありがとうございます!すっきりしましたよ!



374 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/01/01(金) 11:20:57.19 .net]
Happy New Year!

wget -O - 'artscene.textfiles.com/vt100/new_year.vt'| while IFS= read -r line; do echo "$line"; sleep 0.08; done
wget -O - 'mirror.bagelwood.com/textfiles/art/newyears.art'| while IFS= read -r line; do echo "$line"; sleep 0.08; done

375 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/01/01(金) 22:44:41.53 .net]
a happy new yeah.

>>367
素晴らしい!

376 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/01/02(土) 22:52:05.39 .net]
有難う!ファイルを書いた人は素晴らしいよね

377 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/01/14(木) 11:46:10.89 .net]
質問です
テキストファイルだけのデータベースを作ろうと思ってます
どんなシェルスクリプトを書けばいいと思いますか
皆さんのお知恵をお貸しください

あとシス管系女子に登場するみんとちゃんのスリーサイズが分かりません
知っている人がいたら教えて下さい

よろしくお願いいたします

378 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/01/14(木) 12:18:20.24 .net]
テキストファイルだけのデータベースってどんなん?

379 名前:名無しさん@お腹いっぱい。 [2016/01/14(木) 12:37:09.51 .net]
女だらけの水泳大会みたいなものだろ

380 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/01/14(木) 13:49:41.31 .net]
Berkeley DB使え、とかそういう話?

381 名前:名無しさん@お腹いっぱい。 [2016/01/14(木) 19:07:54.47 .net]
人のボケつぶした上にダダスベリって最悪じゃね?

382 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/01/14(木) 19:32:14.79 .net]
職場の開発環境がLinuxでcshなのですが
cshでいいリファレンスはありませんか?
ネットが使えないのでWebページは無理です。

383 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/01/14(木) 20:23:34.08 .net]
定年間近の老人から口伝で受け継ぎましょう



384 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/01/14(木) 22:27:43.69 .net]
changelogで日記書く人もいるしな

385 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/01/14(木) 22:57:32.14 .net]
昔はC Shellフィールドガイドとかいう本が定番だったような
もう30年近く前のことだけど…
それにしても開発環境がcshでネットが使えないって、ある意味すごいと思うw

386 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/01/14(木) 23:03:15.63 .net]
>>375
ネットがダメなら本しかないじゃないか
いま流通してるのって
www.amazon.co.jp/dp/4893620290
くらいかな

387 名前:名無しさん@お腹いっぱい。 [2016/01/14(木) 23:24:27.93 .net]
いまどきc shell使っているところってC言語でも使ってるの?

388 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/01/14(木) 23:24:38.54 .net]
ネットが使えないのにアマゾン?

389 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/01/15(金) 00:15:28.22 .net]
みんとちゃんは天使

390 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/01/15(金) 11:42:41.05 .net]
>>374
もともとのボケからすべってるじゃん

391 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/01/15(金) 14:57:47.22 .net]
ここにいる様な人たちとだけは仕事したくないな〜

392 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/01/15(金) 15:21:01.14 .net]
>>375
マスタリングcshは目の前に転がってるが、他にも合った気がするが
みつからない。

393 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/01/15(金) 15:29:47.22 .net]
みんとが、rm -rf で全消ししても許してあげるし、データリカバリの講義を、みっちりやったげる
ここの住人がやったら半殺し



394 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/01/15(金) 15:51:51.83 .net]
データーリカバリーとデリヘルって似てるね

395 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/01/15(金) 16:08:50.97 .net]
ディスカバリーチャンネルとデタリカバリーチャンネルも似てるね。

396 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/01/15(金) 21:52:13.77 .net]
20年少し前だと、もう csh でスクリプトを書かない事を進められた
SunOS でログインシェルは、csh がデフォで tcsh に切り替え

397 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/01/15(金) 21:54:24.42 .net]
☓ 進められた

398 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/01/15(金) 22:29:29.27 .net]
cshがスクリプトに向かないのは有名だね。
でも短いスクリプトなら、配列が使えたりとかshより便利なケースがないでもない

>>375
manは入ってないの?

399 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/01/17(日) 00:38:52.85 .net]
shって配列使えないんだ?
bashは使えるよね、二次元配列も

400 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/01/17(日) 13:36:42.66 .net]
wiki.bash-hackers.org/scripting/nonportable
こういったポータビリティに関することを一発でチェックするための自動テストスイートってないものかね。
それがあればシェルの比較表もすぐに作れると思うんだが。

401 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/01/17(日) 15:16:57.76 .net]
>>393
>>6 というか checkbashisms
manpages.ubuntu.com/manpages/wily/en/man1/checkbashisms.1.html

402 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/01/21(木) 07:44:44.20 .net]
外部コマンドの違いも有るよね
GNU のコマンドは機能拡張しまくっていて、UNIX 哲学が云々

grep -o -p とかダメだろうな(と思って調べると、OpenBSD は -o を持っているのか)
www.openbsd.org/cgi-bin/man.cgi/OpenBSD-current/man1/egrep.1?query=grep

403 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/01/21(木) 09:51:46.27 .net]
sed -iとかな



404 名前:名無しさん@お腹いっぱい。 mailto:sega [2016/01/21(木) 21:38:36.72 .net]
オプションをある程度統一してほしいよね
-hでヘルプ、-vでバージョン見るくらいは統一してほしい

405 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/01/22(金) 09:43:42.93 .net]
>>397

ほんとになw

406 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/01/22(金) 1 ]
[ここ壊れてます]

407 名前:0:23:07.08 .net mailto: grep -v してるスクリプトが動かなくなったりしたら嫌だな []
[ここ壊れてます]

408 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/01/22(金) 21:11:00.15 .net]
痛みが大きすぎて統一失敗は無理か
今後も長く使われて行く事を考えると、ある程度統一してほしいなあ

特定の環境変数が定義されている時に限り
統一されたオプションにするとか

409 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/01/23(土) 00:27:07.84 .net]
ロングオプションを使い給え。

410 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/01/23(土) 16:57:11.77 .net]
ロングオプションって、ロング過ぎてなんだかなあ
でも今度から意識してみよっと


ちょっと暇つぶし

list of coreutils (Linux, depends dpkg)
dpkg -L coreutils | sed -ne '\@bin/@s@^.*bin/@@p' | xargs man -f

whatis $( which who )

411 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/01/23(土) 19:06:44.06 .net]
>>397
www.gnu.org/software/coreutils/manual/html_node/Common-options.html
‘--help’ ヘルプ
‘--version’ バージョン
‘--’ オプションリスト区切り

412 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/01/23(土) 19:21:27.03 .net]
>>403
そういうことじゃないだろ…

413 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/01/24(日) 00:23:36.03 .net]
>>401でもう既出だし
GNU系コマンド以外には通用しないケースある



414 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/01/28(木) 05:58:34.66 .net]
毎回ランダムに、コマンドを紹介
i.stack.imgur.com/oSyyX.png

元をちょっといじりました。少し無駄が減ったかな
while ! { IFS=:; ls $PATH; } | shuf -n 1 | xargs 2> /dev/null whatis -ls 1,6,8; \
do :; done |
cowsay -f $( ls /usr/share/cowsay/cows | shuf -n 1 )


元ネタ
Are there any games which can train people to learn terminal commands? - Ask Ubuntu
askubuntu.com/questions/337300/are-there-any-games-which-can-train-people-to-learn-terminal-commands
> cowsay -f $(ls /usr/share/cowsay/cows | shuf -n 1 | cut -d. -f1) $(whatis $(ls /bin) 2>/dev/null | shuf -n 1)

415 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/01/28(木) 06:13:04.21 .net]
shufって何?

416 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/01/28(木) 08:36:56.70 .net]
GNU coreutilsに入ってる、行単位で中身をランダムに入れ替えるコマンド。
BSD系ならsort -Rで代替できるかな。

417 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/01/28(木) 09:53:14.50 .net]
動いてるシェルスクリプトをkillしたいんだけど
以下のコマンドより冴えた方法ある?

pgrep -f 'sh script.sh' | xargs kill

これで不満なのはシェルスクリプトが実行されてなかった場合
USAGEが出ちゃうところくらい

418 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/01/28(木) 11:04:04.77 .net]
pgrepがあるならpkillもあるでしょ

419 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/01/28(木) 11:35:34.21 .net]
pkillだとshを殺してしまうことになって都合が悪いです〜

420 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/01/28(木) 11:50:19.16 .net]
pkill -f 'sh script.sh'

421 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/01/28(木) 16:03:14.05 .net]
ありがとう
帰ってから試してみる

422 名前:名無しさん@お腹いっぱい。 [2016/01/30(土) 08:10:48.00 .net]
tputで表示させたいのですが改行されません

#!/bin/sh

while :
do
# Get Time
time=

423 名前:名無しさん@お腹いっぱい。 [2016/01/30(土) 08:14:07.46 .net]
すいませんダブルクォーテーションよりしたが表示されませんでした

time=$(tail -n4 check_date.dat)

COLOR=`tput setaf 5; tput smso`
echo -n -e "\033[s"

tput cup ${TCUP_CNT}
NORMAL=`tput sgr0`
echo -n $COLOR$time$NORMAL
echo -n -e "\033[u"
# Interval
sleep 1
done

check_date.dat
tokyo 23:23:23
Mexco 12:12:12
frans 05:50:05

といったデータとなります。
取得方法はいくつかかえてみましたがダメでした。
tputで改行表示する方法があればアドバイスいただけると助かります。



424 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/01/30(土) 09:44:44.08 .net]
tput についていちいち覚えていないので適当でスマンが
気になる点を上げておいた

echo -n $COLOR$time$NORMAL
だと、エスケープされていないので、$time に含まれる改行文字がスペースに置換される

echo -e は bash だろうから、#!/bin/bash にする
新しく書くスクリプトでは `...` よりも $(...) を使うのが望ましい
ループ中で、変わらない変数を定義しない
(確か sgr0 がリセットかなんかで変わらなかったとして)

425 名前:名無しさん@お腹いっぱい。 mailto:sage [2016/01/30(土) 09:50:10.42 .net]
訂正

> echo -e は bash だろうから、#!/bin/bash にする
#!/bin/sh のままで printf を使う方が良いかな






[ 続きを読む ] / [ 携帯版 ]

前100 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧]( ´∀`)<258KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef