2021年12月18日

「課題★現在時刻とユーザ名、ホスト名を表示するスクリプトを echo コマンド を使って親切な出力で表示してみましょう」。私:「親切」って、そんな茫漠な、、、。シェルスクリプト奇談-1

pdfで、シェルスクリプトを教えてくれる
サイトでの一部からです。(表題は投稿用に変えています)

与えられた課題を私がやると、どうしても、

現 在 時 刻 :
2021年 12月 18日 土曜日 06:46:19 JST
ホスト・ネーム:
spky5_9alpha
ユーザー名  :
user

と項目と出力結果で2行になってしまします。
目に見えぬ改行コードとかを外せば
いいのかな、とか
tr '\n' ' '  等の追加のコマンドを入れてみたりしましたが、
だめだめでした。

コマンドの実行結果って、通常の場合、
表示したあと、その下の行にカーソルが
行くと思います(プロンプトが出る)。それを防ぎたいんですけど、
なかなか、変数を使う、というところに
アタマが行きませんでした。できたときのコード:

#!/bin/sh

d=`date`
c=`cat /etc/hostname`
w=`whoami`

echo "現 在 時 刻:" $d ;
echo "ホスト・ネーム:" $c ;
echo "ユーザー名  :" $w


time_hostname_username_script_done_2021-12-18_07-20-56.jpg

この単純な課題の答えが解るのに、どれほど時間を要したか、、、
私のポンコツ脳では、シェルスクリプトに熟達するにも、
世紀単位の時間がかかりますね。わらってやってください。
じぶんでも、笑えてきました。ハ〜,アッ! (- 。-)\

「 ` 」のことを、grave accent (グレーブアクセント)とか、
backquote (バッククォウト)などと、呼ぶらしいですが、
知りませんでした。シェルスクリプトのプログラミング上、
この記号にそんなに深い意味があるとは知らなかったです。
コマンド実行の結果を変数に代入するときに使うようです。

そういえば、この記号、
pt3のrc.locolのスクリプトにもありました。

日本語キーボードで、これどうやって打つんですかね。
あとアンダースコアの打ち方も判りません。
常用はusキーボードですが、配列がjp106なんかに
なってしまったとき、とても困ることがあります。
でも、プログラミングには、おそらく
usキーボードのほうが向いているでしょうね。
グレーブアクセントもすぐ打てる位置にあります。

ホスト・ネームを表示させるコマンドは、
hostnameでいいんですね。知りませんでした。


posted by ブログ開設者 at 07:56| Comment(0) | linux | このブログの読者になる | 更新情報をチェックする

いまのところの精一杯。pt3におけるrc.localスクリプトのpython化。python日記-7

4波受信できるカードですが、1波だけ。
systemdのサービスで自動起動できず、
xfceのログイン時のオートスタート頼み。

python3_pt3_2021-12-17_23-47-33.jpg

エラーが出ています。出ていますが、
adapterが1つだけなら、つながりはしました。

adapter22だけが100になっています。
/dev/dvb/adapter22フォルダに必要ファイルが入ると
そうなります。

python_pt3_utsuri_2021-12-17_23-57-19.jpg

pythonの単語をほとんど知らないまま、やろうとしたって
上手くいくわけがありませんね。それにしても、
たとえ、できるようになっても、四六時中やっていないと、
すぐ忘れそうですね。言語は、やっぱり語彙力だと
強く感じました。つっかれたー!
効率よく上達する方法って、あるんでしょうかねえ。
課題を数多くこなすしかないんじゃないですかね。
仲間がいて、質問できる人がそばにいると、最高でしょうね。

systemdのサービスって、pythonはダメなんですか。

今回、わからなかったのは(いまでもわからないまま)、
pythonの変数を、linuxこのコマンドラインに入れる
方法があるのか、というところでした。

いまところ、シェルスクリプトでやれることは、
pythonで、できないわけはないはず、
ただ、やり方がわからないだけ、と思っています。
シェルスクリプトとpythonを並行して
やっていこうかな、なんて考えています。
似ているところもあるので。


posted by ブログ開設者 at 00:12| Comment(0) | linux | このブログの読者になる | 更新情報をチェックする