Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

tputの文字装飾設定を消す、あるいは一行だけ適用する方法

実際のところ

そのまんま繋ぐだけなら、コマンドを指定すればいいです。
が、設定リセットしないとそのまま続きます。
というわけで、用が済んだら"tput sgr0"で綺麗にします。

$ tput sgr0

一行だけ適用する場合、";"で繋いで

$ tput bold; echo "This text has the bold attribute."; tput sgr0
This text has the bold attribute.

shellスクリプトででCtrl+Cで終了した時文字装飾を消したい場合

    trap 'tput sgr0 || clear; exit 0' SIGINT

参考もと

www.linuxcommand.org

tput コマンドで端末表示情報を取得したり文字装飾したりするのは

tputコマンドは列や行などの端末表示情報を取得するコマンドです。
また、暗黒エスケープ文字無しに文字装飾をやったりもできます。

実際のところ

列の文字数は

$ tput lines

行の文字数は

$ tput cols

背景を緑(色番号2)に

$ tput setab 2

f:id:shuzo_kino:20190612222042p:plain

参考もと

【読書メモ】入門 機械制御と製作実習 4軸クレーンを作って学ぶ機械装置設計

タイトル通り、産業用機器で使われているような制御・機構をつかって4軸クレーンを作ってみようという本です。
高専の教材をベースに作った内容らしく、効率より学習重視。

まずPLCの前に部品でリレー回路を作るのが教材らしいですね。
他にも、アルミ加工やら、圧縮空気系の配線・デザインの仕方等々、
ネットにはあまり出ていない機械屋さんの知見が数多く載っており一通り手を動かせば
簡単な装置くらいは自分でデザインできるようになりそうです。

難点は、個人で部品を揃えるには結構お金も時間もかかりそうというところ。
そのまんま素直に買うと20万円くらいします。
時間を掛けて進めるなり、チームを組んで講習形式でやってみるという方法が考えられます。

【読書メモ】ドキュメント作成システム構築ガイド

ドキュメント作成システム構築ガイド[GitHub、RedPen、Asciidoctor、CIによる モダンライティング]

ドキュメント作成システム構築ガイド[GitHub、RedPen、Asciidoctor、CIによる モダンライティング]

githubやjenkins、AsciiDoctor、Redpenといったツールをつかって、
ドキュメントの作成を自動構築する本です。
最近手がけたプロジェクトでは山のように資料が作成され、
その結果言葉の定義が微妙に違ったり、数値が違ったりとわけのわからない事になりました。
わたしはGoogle Driveでやっていたのですが、パートナー企業は出力したwordやpdfで編集して、それを逐次反映するのは相当に大変でした。
内々の情報共有ならscrapboxという手段はありますが、
困った事にカッチリした資料様式に落とし込めないので結局二度手間になったりするのですよね……。

部分テンプレートのような運用をすれば、一部機能が変わっても動的に更新してくれるようになりますし
語句の乱れも一括強制で楽々。

さらに、図面の作成でもテキストベースでUMLを作成できる神ツールPlantUMLも利用可能となっています。
shuzo-kino.hateblo.jp


類似品sphinx

asciidoctorの類似品としてsphinxというのもあります。

shuzo-kino.hateblo.jp

whiptailをつかってCLIに対話型画面をつくる その8:whiptail画面を関数に分離

#! /bin/bash


function startBox {
    whiptail --msgbox "Welcome!!" 10 40
}

function mainMenu {
  whiptail --title "Menu" --menu "choose an option" 12 40 4 \
  "ONE" "option 1" \
  "TWO" "option 2" \
  3>&1 1>&2 2>&3
}

function case1 {
    whiptail --msgbox "YES 1" 10 40
}

function case2 {
    whiptail --msgbox "No 2" 10 40
}

function endBox {
    whiptail --msgbox "Thank YOU!!" 10 40
}

startBox

RESULT=$(mainMenu)

case $RESULT in
  "ONE")
    case1 ;;
  "TWO")
    case2 ;;
  *)
    echo "WtF...!?"
esac

endBox

順番に実行したら、こんな風になります。
f:id:shuzo_kino:20190606010215p:plain
f:id:shuzo_kino:20190606010234p:plain
f:id:shuzo_kino:20190606010244p:plain
f:id:shuzo_kino:20190606010306p:plain