【問題と解答】第19回シェル芸3周年記念勉強会

Sat Oct 31 17:38:47 JST 2015 (modified: Sun Oct 1 10:50:27 JST 2017)
views: 756, keywords: USP友の会,勉強会,シェル芸

  このエントリーをはてなブックマークに追加 

問題のみのページはこちら。

イントロ

第19回シェル芸勉強会イントロ from Ryuichi Ueda

問題で使うファイル等

前回からGitHubに置くようにしました。ファイルは

https://github.com/ryuichiueda/ShellGeiData/tree/master/vol.19

にあります。

クローンは以下のようにお願いします。

環境

今回はLinuxで解答例を作りましたので、BSD系、Macな方は以下の表をご参考に・・・。

Mac,BSD系 Linux
gdate date
gsed sed
tail -r tac
gtr tr
gfold fold

Q1

端末で実行すると「1ppm」Žと出力されて、シェルスクリプトに書いて実行すると「40ppm」」と出力されるコマンドの組み合わせを考案してみましょう。フォルクスワーゲンは関係ありません。

解答

例えばbashであれば、シェルスクリプトではaliasが無効になることを利用できます。

Q2

二つの自然数を

というようにechoで出力したあと、

4
3
2
1
2
3
4

というように間の数を埋めてみてください。

解答

Q3

「1234567890」を含む13桁の数字(0から始まる数字を含む)をすべて列挙してみましょう。マイナンバー?何それ?

解答

Macだと最初の答えば000や00が0に削られてうまく動かないようです。

Q4

以下のデータについて、「すっとこどっこい」を「朴念仁」に変換しましょう。「すっとこどっこい」以外の部分の改行は除去してはいけません。

解答

Q5

/?page_id=7123 から、画像を抜き出して保存しましょう。

解答

Q6

ファイルQ6は、Shift JISで記録された日本語を2進数にしたものです。ワンライナーで日本語に直してみましょう。

解答

一例です。

Q7

bashでは変数SHLVLに、今使っているbashの深さ(子シェル:2, 孫シェル:3, ...)が入っています。echo $SHLVLで、100を出してみてください。

解答

自身を呼び出すシェルスクリプトを使って実行するのが一つの方法です。

Q8

以下のワンライナーに加筆して、1000プロセスぐらい立ち上げた後で止めてみてください。壊しても良い環境で行ってください。

解答

変数を起動するたびにファイルに1行追記してやって条件を判定すれば、安心してください。止まりますよ。(失敗すると止まらないけど。)



prev:【問題】第19回シェル芸3周年記念勉強会 next:考えたくない人向けWiringPi2導入手順(Raspberry Pi2 Model B, 2015年11月6日現在)





このサイトではGoogle AdSenseやその他ソーシャルボタンのためにCookieを使用しています。もし同意いただけない場合はブラウザでクッキーを無効にして閲覧をお願いします。This site uses cookies for Google AdSense and some social buttons. If you cannot accept our use of cookies, please disable cookies on your browser.