シェルスクリプト
Bash on Ubuntu on Windowsによって、Windowsでカジュアルにbashを利用することが出来るようになりましたよね。 しかしながらシェルスクリプトを直接実行することはできないようです。(パスの形式が違うので関連付けで実行できない) ということで、BATファイ…
[ch_bg_color.sh] #!/bin/bash R=$1 G=$2 B=$3 /usr/bin/osascript <
はじめに install(1)という、cpとmkdirとchmodを同時に行うような便利コマンドがあることを知りました。 (忘れちゃいましたが、何かのMakefileを見ているときに存在に気付きました) これを使うと、プロビジョニングなどのスクリプトが簡潔に書けるようになり…
この記事はShell Script Advent Calendar 2016の20日目の記事として公開されました。 昨日は@MasWagさんの「Tech Hack: 最近見た不思議なシェルスクリプトを直してみた」でした。 シェルスクリプトは「知ってる・知らない」で長さもわかりやすさも全然違って…
賢明な読者諸君は既にお気付きになられているかと思いますが、ここ数回のシェル芸勉強会大阪サテライトレポートの記事、実はほぼ全て同じ構成になっています。 「第19回シェル芸勉強会 大阪サテライト」レポート - くんすとの備忘録 「第21回シェル芸勉強会 …
内部十進数(Decimal型とかS9 comp-3とか)を含むデータって普通にNULL(0x00)が入ってくるので、headすると行末をちゃんと判定できなくておかしなことになりますよね。ですが、固定長ファイルの場合は dd(1) を使うと簡単に、先頭から任意の行数だけ抜き出すこ…
github.comいちいち端末からブラウザにコピペしてツイート、という流れが面倒なあなたに! これは何? 標準入力から読み込んだ文字列にハッシュタグ「#シェル芸」をつけてツイートするpythonスクリプトです。 確認済みの環境 python2.7 on MSYS2 (64bit) pyt…
ArchLinuxへの浮気をはじめました。のですがこのマシン、HiDPIなわけで・・・小さすぎて読めない pic.twitter.com/Bg4VG2riVI— くんすと (@kunst1080) September 9, 2015 解像度が高すぎて入力した文字が読めません!! ・・・・・・というわけで、一撃シェ…
昨日のシェル芸ヴェンキョウカイ(問5)で話題(?)になった、nlコマンドのオプションについて。これもさらりとオプションの再確認だけ…… と思っていたのですが、『論理ページ』なるものが気になったのでむしろそちらをメインに確認してきます。 論理ページのセ…
昨日のシェル芸ヴェンキョウカイ(問5)で話題(?)になった、catコマンドのオプションについて。これはさらりとオプションの再確認だけ… テストデータ 問5;https://github.com/ryuichiueda/ShellGeiData/blob/master/vol.18/Q5/text あ あ い い う え お お お…
昨日のシェル芸ヴェンキョウカイ(問2)で話題になった、commコマンドについて。 自分はたまたま先週使ったことがあって知ってたんですが、シェル芸ヴェンキョウカイで初めて知った!っていう人もいたみたいだし、せっかくなので使い方をまとめておきます。 テ…
昨日のシェル芸ヴェンキョウカイ(問2)で話題になった、BSD系環境で制御コードを置換するはなしです。 sedではやれないけどtrなら……という話です。BSDでも、trを使えば8進数で置換できるみたい。 comm <(sort a) <(sort b) | sort -r | tr '\011' ',' #シェル…
昨日のシェル芸ヴェンキョウカイ(問1、問5)で話題になった、BSD系環境のuniqコマンドの使い方について。 BSDのuniqにはキー部分を指定する「-w」オプションがないけどどうするの? っていう話です。 テストデータ 問1;https://github.com/ryuichiueda/ShellG…
マンガ版「俺の許嫁と幼なじみが修羅場すぎる」|paizaオンラインハッカソン5paiza.jp幼なじみルートの最終問題の解答例です。 read X Y && awk -v x=$X -v y=$Y '{for(i=0;i
8080ポートを待ち受けてリクエストをそのまま別スクリプト(シェルスクリプト)に渡すだけ、っていうのをしたかったんですが、いいコマンドが見つからなかったので勉強がてら自作してみました。もともとはncコマンドでやろうとしていたんですが、データを出力…
タイトルの通り、UNIXの「uniq」コマンドを使って、2つのファイルから 論理和(OR) 論理積(AND) 排他的論理和(XOR) 差集合(A-B) 差集合(B-A) を取得する方法を示します。 方法 前提:入力ファイル 確認のため、以下のような、ファイルa・bを使用します。 % ca…
応募期間終わりましたし、もう大丈夫だよね……エンジニアでも恋がしたい〜転職初日にぶつかった女の子が同僚だった件〜|paizaオンラインハッカソン4 Lite マンガ版「エンジニアでも恋がしたい!」〜転職初日にぶつかった女の子が同僚だった件〜|paizaオンラ…
FreeBSD Jail環境でrbenvを使用するとき、/dev/fdにfdescfsをマウントできてないとき、だと思っているのですが、こんなエラーが出ます。 /usr/local/libexec/rbenv-version-file-read: line 23: /dev/fd/62: No such file or directory どうも該当スクリプト…
当日は用事があり参戦できなかったので、ブログ参戦です! TLをネタバレしない程度に覗いてみましたが、今回の問題はいつもにも増して頭がおかしいとレベルだとの評判で、なかなか楽しみであります! 各種リンク 公式:https://www.usptomo.com/PAGE=2014121…
@nullpopopoさんの記事を受けて、自分もやってみました。 [シェル芸](初心者向け)空行を出力する(別解) | (っ´∀`)っ ゃー | nullpopopo さて、FreeBSDには rs(1) という、配列を変換するコマンドがあります。例えば、 % jot 10 | rs 2 3 1 2 3 4 5 6とすれ…
先日の記事の内容をシェルスクリプト化したものを作成しました。もう構築しちゃったので使い道はあんまりないんですけどね :-P ArchLinuxをインストールしてみた手順 - くんすとの備忘録 使い方 curlやscpなどでスクリプトを転送して実行します。 実行時は第…
FreeBSDのホスト環境でDHCPを使用しています。 環境(ルーター)が変わるとそれに合わせてホストのresolv.confの内容は書き換わるのですが、Jail prisonerのresolv.confは連動して変わりません。。。(そりゃあそうでしょうけども)おそらくうまくやるやり方…
ご利用は自己責任で。こんなテキストファイルがあります。 $ cat test.txt LANG is $LANG LANG is "$LANG" LANG is '$LANG' 普通にcatすれば上記の通りですが、これをこうすればヒアドキュメント形式になって…… $ printf "cat <<++EOS\n`cat test.txt`\n++EO…
今回は関西から、Twitter参加しました。 イベント:http://usptomo.doorkeeper.jp/events/12763 UST:http://www.ustream.tv/channel/%E3%82%B7%E3%82%A7%E3%83%AB%E8%8A%B8 問題と解説:http://blog.ueda.asia/?p=3535 togetter:http://togetter.com/li/70…
入力デバイスの一覧は、以下のコマンドで確認できるみたい。 xinput list 出力 ⎡ Virtual core pointer id=2 [master pointer (3)] ⎜ ↳ Virtual core XTEST pointer id=4 [slave pointer (2)] ⎜ ↳ USB Optical Wheel Mouse id=11 [slave pointer (2)] ⎜ ↳ PS…
前回の続きで、今回は、メソッド名とURLを受け取ってみる。telnetでアクセスする場合、一旦アクセス後入力待ちになり、そこで「GET /」みたいな入力をするので、それを真似てみる。 とりあえず、頭に入力待ちを入れてみる /home/test/hoge.sh #!/bin/sh read…
以前(http://kunst1080.hatenablog.com/entry/2014/01/26/180321)、netcatでwebサーバできないかなーってシェルスクリプト書いたりしていたわけですが、そもそもinetdで指定のポートを通して標準入出力が扱えるってことに気づいたのでやってみたテスト。 前…
前のエントリの続き。 こちらはおまけ[flunpack] 使い方はこんな感じ。 % cat data 1HOGE 0 2FUGA 0 3HOGEHOG0 % cat data | flsplit 10 1HOGE 0 2FUGA 0 3HOGEHOG0 % cat data | flsplit 10 | flunpack "A1A7A2" 1,HOGE,0 2,FUGA,0 3,HOGEHOG,0 ,, ,, ん?…
必要に迫られて書いた。[flsplit] こんな感じで使います。 % cat data 1HOGE 0 2FUGA 0 3HOGEHOG0 % cat data | flsplit 10 1HOGE 0 2FUGA 0 3HOGEHOG0
ddコマンドには「conv」というオプションがあり、これを使うと色々と面白い変換ができます。指定できるのは、manより ascii, oldascii block ebcdic, ibm, oldebcdic, oldibm lcase pareven, parnone, parodd, parset noerror notrunc osync sparse swab syn…