ぐちゃぐちゃ・・・ ― 2017年05月08日 04:49
ぐちゃぐちゃ・・・
シェルスクリプトのお勉強の一環として、数字を入力してもらうインターフェイスを作ってみる。
#!/bin/bash
dialog --clear --msgbox "何か数字を入れてください。" 0 0
while :
do
clear
echo -n "何か数字を入れてください。>>"
read SUUJI
if [ "$SUUJI" = "" ]
then
whiptail --clear --msgbox "空打ちです。何か数字を入れてください。" 0 0
elif [ "$(expr $SUUJI + 1 2>&1 >/dev/null)" = "expr: 整数でない引数" ]
then
whiptail --clear --msgbox "整数を入れてください。" 0 0
else
dialog --clear --yesno "この数字でいいですか?"$SUUJI 0 0
if [ $? -eq 0 ]
then
dialog --clear --msgbox "$SUUJIを取得しました。" 0 0
break
else
SUUJI=""
whiptail --clear --yesno "もう一度、お願いします。" 0 0
if [ $? -eq 0 ]
then
continue
else
whiptail --clear --msgbox "数字は取得されませんでした。" 0 0
break
fi
fi
fi
done
clear
echo $SUUJI
何のコメントも入れなかったので、後から見たら(今でも?)、何が書いてあるのか分からなくなるに決まっている。
dialogとwhiptailと、readが混在していて、何が何やら・・・。
背景色の変更方法を調べたり、テキストを取得するボックスの使い方を調べるのが億劫で、3者混合というわけだな。
NULL値を排除したり、整数以外の入力を排除したり、一応、気を使っているんだが、調べるのが大変で時間を食った。
思ったような画面遷移にならなかったが、まあ、こんなもんか。
UNIX考古学は、第1章を読み終え、いよいよ、UNIX誕生の第2章に入った。
a.outというコンパイル後のターゲットファイルの名前、黒板に書かれた構想しかなかった「チョークファイル」の実装・・・。
1969年の夏、UNIXは、アセンブラ言語で書かれたシステムプログラムとして誕生する。
目的はただ一つ、スペーストラベルというコンピューターゲームをするだめだった(そうなのかあ?)。
スペーストラベル自体は、クロス開発環境(GEマシン)の上でコンパイルされ、実行ファイルとして、紙テープに打ち込まれてDECのPDP-7というマシンの上で動いていたが、PDP-7上で開発環境を得るために、アセンブラでゴリゴリとツールを書いたらしい。
UNIXがCで書かれたのは、もっと後の話だ(1973年)。
そもそも、何をもってUNIXとするかという話もある。
商業的な定義はあるんだろうが、このPDP-7で動いたプログラム群をそう呼ぶかどうかは、いささか疑問があるな。
(PDP-7)
https://ja.wikipedia.org/wiki/PDP-7
「1969年、ケン・トンプソンはPDP-7上でアセンブリ言語で最初のUNIXを作成した。」
「当初の名前は Unics であり、Multicsを連想させるちょっとした駄洒落になっている。」
「実際にはUNIX以前にSpace TravelというゲームをMulticsの元となったGE 635上からPDP-7に移植しており、後にこのゲームがUNIX上で動作するようにしている。」
しかし、1969年当時は、Unicsというシャレを意識した名前すらない。
つまり、1969年にPDP-7で動いたプログラム群がUNIXだというのは、後知恵に過ぎない(たぶん)。
UNIXが持つ様々な特徴は、こういった初期の開発状況の中から、必然的に生まれてきたもの様に思われる。
誰かが、教祖になって広めたわけではない(後には、大勢教祖が出てくるようですが)。
69年、後にUNIXと呼ばれることになるシステムプログラムが、DECのマシンの上で動き始めた。
それは、マルチクスというオペレーティングシステムの開発から手を引いたベル研究所の片隅で、ひっそりと姿を現す。
まだ、C言語は、影も形もない。
コンピューターの使用が、時間貸で行われていた時代に、研究所の片隅に打ち捨てられていた古ぼけたミニコンで動かすためには、大そうなプログラムを書くわけにはいかない。
しかも、当時のAT&Tは、コンピューター事業への参入を、法律で禁じられていた。
さて、物語は、この後、意外な方向に動いていくのだが、そして、それが今日に続くUNIXの潮流を生み出す理由になるのだが、それは本とかネットを見ればいくらでも書かれている。
UNIXは、潤沢な国家予算や、膨大な人員、明確なコンセプトや、当代最高性能のコンピューターを使って生まれたわけではない。
大っぴらには出来ない理由(コンピューターゲームを、無料でやりたい!)が動機となって、ベル研が撤退したマルチクスのスタッフが、夏休みの1か月間で、古ぼけた誰も使っていなかったミニコン上に、アセンブラで実装されたポッチリのプログラム群が始まりだ。
何の始まりかは、今でも分かっていない。
それは、今風のコンピューターの使い方の始まりだったともいえるし、これから先のコンピューターの使い方を変えていくかもしれない動きの始まりなのかもしれない。
UNIXというのは、始まりが重要なのではない(と思う)。
市場を独占していた大メーカーでなければ作れないと言われたオペレーティングシステムを、大勢が寄ってたかって(!)発展させ続けるというムーブメントを生み出したことが重要だな。
大型汎用機からパソコンの時代になっても、そのことは変わらない。
それだって、当時のAT&Tがコンピューターを商売に出来なかったという事情が背景にある。
それが出来たなら、違った展開になっていたかもしれない。
そして、コンピューターを対話的に個人が使うという、信じられない時代への扉をこじ開けることになる。
ああ、その先は、もう少し読んでからにしよう。
浮沈子は、巷に溢れているスマホやタブレットの源流にあるUNIXの話が好きなだけだ。
M社のパソコンでも、UNIXのプログラムがネイティブで走る時代になった。
日本語も出るしな。
ダイアログは、枠が崩れないから始めたんだがな。
バージョンアップした途端に、ぐちゃぐちゃになった。
まあいい。
そのうち、ちゃんと出るようになるんだろう(設定すれば、今でも出るのかも)。
やりたいことがあって、それを実現するためにプログラムを書くというのが自然な流れだ。
ケネストンプソンが、本当にゲームやりたかっただけかどうかは知らない。
(ケン・トンプソン)
https://ja.wikipedia.org/wiki/%E3%82%B1%E3%83%B3%E3%83%BB%E3%83%88%E3%83%B3%E3%83%97%E3%82%BD%E3%83%B3
「ハッカー仲間からはケン・トンプソン (Ken Thompson) と呼ばれている」
「私はいつも論理に魅了されていて、小学生のころ既に二進法などの算数問題を解いていた。それは単に私が魅了されていたからだ」
論理に魅了されたというのは聞こえがいいが、オタクなだけかもな・・・。
シェルスクリプトのお勉強の一環として、数字を入力してもらうインターフェイスを作ってみる。
#!/bin/bash
dialog --clear --msgbox "何か数字を入れてください。" 0 0
while :
do
clear
echo -n "何か数字を入れてください。>>"
read SUUJI
if [ "$SUUJI" = "" ]
then
whiptail --clear --msgbox "空打ちです。何か数字を入れてください。" 0 0
elif [ "$(expr $SUUJI + 1 2>&1 >/dev/null)" = "expr: 整数でない引数" ]
then
whiptail --clear --msgbox "整数を入れてください。" 0 0
else
dialog --clear --yesno "この数字でいいですか?"$SUUJI 0 0
if [ $? -eq 0 ]
then
dialog --clear --msgbox "$SUUJIを取得しました。" 0 0
break
else
SUUJI=""
whiptail --clear --yesno "もう一度、お願いします。" 0 0
if [ $? -eq 0 ]
then
continue
else
whiptail --clear --msgbox "数字は取得されませんでした。" 0 0
break
fi
fi
fi
done
clear
echo $SUUJI
何のコメントも入れなかったので、後から見たら(今でも?)、何が書いてあるのか分からなくなるに決まっている。
dialogとwhiptailと、readが混在していて、何が何やら・・・。
背景色の変更方法を調べたり、テキストを取得するボックスの使い方を調べるのが億劫で、3者混合というわけだな。
NULL値を排除したり、整数以外の入力を排除したり、一応、気を使っているんだが、調べるのが大変で時間を食った。
思ったような画面遷移にならなかったが、まあ、こんなもんか。
UNIX考古学は、第1章を読み終え、いよいよ、UNIX誕生の第2章に入った。
a.outというコンパイル後のターゲットファイルの名前、黒板に書かれた構想しかなかった「チョークファイル」の実装・・・。
1969年の夏、UNIXは、アセンブラ言語で書かれたシステムプログラムとして誕生する。
目的はただ一つ、スペーストラベルというコンピューターゲームをするだめだった(そうなのかあ?)。
スペーストラベル自体は、クロス開発環境(GEマシン)の上でコンパイルされ、実行ファイルとして、紙テープに打ち込まれてDECのPDP-7というマシンの上で動いていたが、PDP-7上で開発環境を得るために、アセンブラでゴリゴリとツールを書いたらしい。
UNIXがCで書かれたのは、もっと後の話だ(1973年)。
そもそも、何をもってUNIXとするかという話もある。
商業的な定義はあるんだろうが、このPDP-7で動いたプログラム群をそう呼ぶかどうかは、いささか疑問があるな。
(PDP-7)
https://ja.wikipedia.org/wiki/PDP-7
「1969年、ケン・トンプソンはPDP-7上でアセンブリ言語で最初のUNIXを作成した。」
「当初の名前は Unics であり、Multicsを連想させるちょっとした駄洒落になっている。」
「実際にはUNIX以前にSpace TravelというゲームをMulticsの元となったGE 635上からPDP-7に移植しており、後にこのゲームがUNIX上で動作するようにしている。」
しかし、1969年当時は、Unicsというシャレを意識した名前すらない。
つまり、1969年にPDP-7で動いたプログラム群がUNIXだというのは、後知恵に過ぎない(たぶん)。
UNIXが持つ様々な特徴は、こういった初期の開発状況の中から、必然的に生まれてきたもの様に思われる。
誰かが、教祖になって広めたわけではない(後には、大勢教祖が出てくるようですが)。
69年、後にUNIXと呼ばれることになるシステムプログラムが、DECのマシンの上で動き始めた。
それは、マルチクスというオペレーティングシステムの開発から手を引いたベル研究所の片隅で、ひっそりと姿を現す。
まだ、C言語は、影も形もない。
コンピューターの使用が、時間貸で行われていた時代に、研究所の片隅に打ち捨てられていた古ぼけたミニコンで動かすためには、大そうなプログラムを書くわけにはいかない。
しかも、当時のAT&Tは、コンピューター事業への参入を、法律で禁じられていた。
さて、物語は、この後、意外な方向に動いていくのだが、そして、それが今日に続くUNIXの潮流を生み出す理由になるのだが、それは本とかネットを見ればいくらでも書かれている。
UNIXは、潤沢な国家予算や、膨大な人員、明確なコンセプトや、当代最高性能のコンピューターを使って生まれたわけではない。
大っぴらには出来ない理由(コンピューターゲームを、無料でやりたい!)が動機となって、ベル研が撤退したマルチクスのスタッフが、夏休みの1か月間で、古ぼけた誰も使っていなかったミニコン上に、アセンブラで実装されたポッチリのプログラム群が始まりだ。
何の始まりかは、今でも分かっていない。
それは、今風のコンピューターの使い方の始まりだったともいえるし、これから先のコンピューターの使い方を変えていくかもしれない動きの始まりなのかもしれない。
UNIXというのは、始まりが重要なのではない(と思う)。
市場を独占していた大メーカーでなければ作れないと言われたオペレーティングシステムを、大勢が寄ってたかって(!)発展させ続けるというムーブメントを生み出したことが重要だな。
大型汎用機からパソコンの時代になっても、そのことは変わらない。
それだって、当時のAT&Tがコンピューターを商売に出来なかったという事情が背景にある。
それが出来たなら、違った展開になっていたかもしれない。
そして、コンピューターを対話的に個人が使うという、信じられない時代への扉をこじ開けることになる。
ああ、その先は、もう少し読んでからにしよう。
浮沈子は、巷に溢れているスマホやタブレットの源流にあるUNIXの話が好きなだけだ。
M社のパソコンでも、UNIXのプログラムがネイティブで走る時代になった。
日本語も出るしな。
ダイアログは、枠が崩れないから始めたんだがな。
バージョンアップした途端に、ぐちゃぐちゃになった。
まあいい。
そのうち、ちゃんと出るようになるんだろう(設定すれば、今でも出るのかも)。
やりたいことがあって、それを実現するためにプログラムを書くというのが自然な流れだ。
ケネストンプソンが、本当にゲームやりたかっただけかどうかは知らない。
(ケン・トンプソン)
https://ja.wikipedia.org/wiki/%E3%82%B1%E3%83%B3%E3%83%BB%E3%83%88%E3%83%B3%E3%83%97%E3%82%BD%E3%83%B3
「ハッカー仲間からはケン・トンプソン (Ken Thompson) と呼ばれている」
「私はいつも論理に魅了されていて、小学生のころ既に二進法などの算数問題を解いていた。それは単に私が魅了されていたからだ」
論理に魅了されたというのは聞こえがいいが、オタクなだけかもな・・・。
マクロン ― 2017年05月08日 05:57
マクロン
フランスの大統領選挙。
まさか、ルペンが当選するとは思っていなかったが、事前の予想通り、マクロンになったようだ。
(マクロン氏が勝利宣言 「大きな名誉で大きな責任」)
http://www3.nhk.or.jp/news/html/20170508/k10010973161000.html
「非常に大きな名誉で大きな責任を感じている。私に投票してくれたすべての国民に感謝したい」
この人物のことは良く知らない。
しかし、ブレグジットの時にロイターが流した記事は、今でも鮮明に覚えている。
(英国がEU離脱なら、仏から移民流入させる─仏経済相=FT)
http://jp.reuters.com/article/macron-imm-idJPKCN0W5123
「英国が6月の国民投票の結果、欧州連合(EU)から離脱するならば、フランスから英国への移民流入を食い止めていた国境管理をやめると警告した。」
さてさて、喧嘩っ早い若い大統領は、現実の政治の中で、どういう舵取りをしていくんだろうか。
浮沈子は、結構柔軟に対応していくと思っているんだがな。
つーか、そうしなければEUは崩壊するしかない。
世界がバラバラになろうとしている今こそ、求心力が必要だ。
フランス国民の選択は正しい。
英国は辛いところだ。
キビシー選択になるだろうな。
「集団エネルギーは新たな関係を再構築するのではなく、今までの絆を解消することに向けられるだろう」
英国の離脱は、まあ、想定の範囲内とはいえ、EUに与えるダメージは大きい。
ここで踏みとどまって、再興を期すしか選択肢はない。
「マクロン氏の勝利でドイツにも責任が生じる。マクロン氏が大統領として成功しなければ、5年後にはルペン氏が大統領に選ばれることになるからだ」
NHKの記事では、ドイツ外相が核心を突いたコメントを出している。
市場は、既に選挙結果を織り込み済みだから、大きくは動くまい。
しかしなあ、フランスの成功って、一体何なんだろう・・・。
マキロン?。
あれは、赤チンの代わりの傷薬だ・・・。
フランスの大統領選挙。
まさか、ルペンが当選するとは思っていなかったが、事前の予想通り、マクロンになったようだ。
(マクロン氏が勝利宣言 「大きな名誉で大きな責任」)
http://www3.nhk.or.jp/news/html/20170508/k10010973161000.html
「非常に大きな名誉で大きな責任を感じている。私に投票してくれたすべての国民に感謝したい」
この人物のことは良く知らない。
しかし、ブレグジットの時にロイターが流した記事は、今でも鮮明に覚えている。
(英国がEU離脱なら、仏から移民流入させる─仏経済相=FT)
http://jp.reuters.com/article/macron-imm-idJPKCN0W5123
「英国が6月の国民投票の結果、欧州連合(EU)から離脱するならば、フランスから英国への移民流入を食い止めていた国境管理をやめると警告した。」
さてさて、喧嘩っ早い若い大統領は、現実の政治の中で、どういう舵取りをしていくんだろうか。
浮沈子は、結構柔軟に対応していくと思っているんだがな。
つーか、そうしなければEUは崩壊するしかない。
世界がバラバラになろうとしている今こそ、求心力が必要だ。
フランス国民の選択は正しい。
英国は辛いところだ。
キビシー選択になるだろうな。
「集団エネルギーは新たな関係を再構築するのではなく、今までの絆を解消することに向けられるだろう」
英国の離脱は、まあ、想定の範囲内とはいえ、EUに与えるダメージは大きい。
ここで踏みとどまって、再興を期すしか選択肢はない。
「マクロン氏の勝利でドイツにも責任が生じる。マクロン氏が大統領として成功しなければ、5年後にはルペン氏が大統領に選ばれることになるからだ」
NHKの記事では、ドイツ外相が核心を突いたコメントを出している。
市場は、既に選挙結果を織り込み済みだから、大きくは動くまい。
しかしなあ、フランスの成功って、一体何なんだろう・・・。
マキロン?。
あれは、赤チンの代わりの傷薬だ・・・。
ネイティブ ― 2017年05月08日 06:57
ネイティブ
崩れない。
dialogの画面は、ネイティブのウブンツ(といっても、VMウェア上ですが)では、表示が崩れない。
whiptailは、BUWと同じように崩れる。
混在させずに、ダイアログに統一してやろうかな。
どっちにしても、立ち上げの手間があるしな。
まあ、どうでもいいんですが。
同じマシン上に、リナックスの環境が4つもある(ゲートウェイ)。
BUW、ウブンツ×2、Zorin。
こんなには、いらない。
BUWとウブンツ1個だけ残して、他は消してしまおうかな。
メンテナンスも大変だしな。
おまけに、ウインドウズ10の保守もある(おまけかよ・・・)。
まあいい。
この他に、星の数ほどあるタブレット・・・。
ああ、考えたくない!。
昨日は、シンクパッド10をクリエーターズアップデイトに上げた。
あっさり上がって大満足だが、ダウンロードは相当分量がある。
また、3日で10G超えて、通信速度規制のお世話になりそうだ。
連休中は、あまり身動き取れなかったからな(とかいいながら、秋葉原2回)。
少し、用足しにも出かけなければならない。
#!/bin/bash
dialog --clear --msgbox "何か数字を入れてください。" 0 0
while :
do
clear
echo -n "何か数字を入れてください。>>"
read SUUJI
if [ "$SUUJI" = "" ]
then
dialog --clear --msgbox "空打ちです。何か数字を入れてください。" 0 0
elif [ "$(expr $SUUJI + 1 2>&1 >/dev/null)" = "expr: 整数でない引数" ]
then
dialog --clear --msgbox "整数を入れてください。" 0 0
else
dialog --clear --yesno "この数字でいいですか?"$SUUJI 0 0
if [ $? -eq 0 ]
then
dialog --clear --msgbox "$SUUJIを取得しました。" 0 0
break
else
SUUJI=""
dialog --clear --yesno "もう一度、お願いします。" 0 0
if [ $? -eq 0 ]
then
continue
else
dialog --clear --msgbox "数字は取得されませんでした。" 0 0
break
fi
fi
fi
done
clear
echo $SUUJI
今度は、カレンダーを使って、日付を取得し、日数計算とかをやってみようか?。
というわけで、何時まで経っても、パイソンの学習は本格化しないわけだな・・・。
崩れない。
dialogの画面は、ネイティブのウブンツ(といっても、VMウェア上ですが)では、表示が崩れない。
whiptailは、BUWと同じように崩れる。
混在させずに、ダイアログに統一してやろうかな。
どっちにしても、立ち上げの手間があるしな。
まあ、どうでもいいんですが。
同じマシン上に、リナックスの環境が4つもある(ゲートウェイ)。
BUW、ウブンツ×2、Zorin。
こんなには、いらない。
BUWとウブンツ1個だけ残して、他は消してしまおうかな。
メンテナンスも大変だしな。
おまけに、ウインドウズ10の保守もある(おまけかよ・・・)。
まあいい。
この他に、星の数ほどあるタブレット・・・。
ああ、考えたくない!。
昨日は、シンクパッド10をクリエーターズアップデイトに上げた。
あっさり上がって大満足だが、ダウンロードは相当分量がある。
また、3日で10G超えて、通信速度規制のお世話になりそうだ。
連休中は、あまり身動き取れなかったからな(とかいいながら、秋葉原2回)。
少し、用足しにも出かけなければならない。
#!/bin/bash
dialog --clear --msgbox "何か数字を入れてください。" 0 0
while :
do
clear
echo -n "何か数字を入れてください。>>"
read SUUJI
if [ "$SUUJI" = "" ]
then
dialog --clear --msgbox "空打ちです。何か数字を入れてください。" 0 0
elif [ "$(expr $SUUJI + 1 2>&1 >/dev/null)" = "expr: 整数でない引数" ]
then
dialog --clear --msgbox "整数を入れてください。" 0 0
else
dialog --clear --yesno "この数字でいいですか?"$SUUJI 0 0
if [ $? -eq 0 ]
then
dialog --clear --msgbox "$SUUJIを取得しました。" 0 0
break
else
SUUJI=""
dialog --clear --yesno "もう一度、お願いします。" 0 0
if [ $? -eq 0 ]
then
continue
else
dialog --clear --msgbox "数字は取得されませんでした。" 0 0
break
fi
fi
fi
done
clear
echo $SUUJI
今度は、カレンダーを使って、日付を取得し、日数計算とかをやってみようか?。
というわけで、何時まで経っても、パイソンの学習は本格化しないわけだな・・・。
最近のコメント