Open9

[arch]Linuxのあれこれ

AkidoAkido

wlogoutをhyperlandのkey bindした結果表示をトグルするためにはshall script核に必要がありそうなので、そのスクリプトをdotfileとして保存することを考えた場合、どこに配置するのがいいのか考えてみる

https://linuc.org/study/knowledge/544/

AkidoAkido

man

MANUAL SECTIONS
The standard sections of the manual include:

1      User Commands
2      System Calls
3      C Library Functions
4      Devices and Special Files
5      File Formats and Conventions
6      Games et. al.
7      Miscellanea
8      System Administration tools and Daemons

Distributions customize the manual section to their specifics,
which often include additional sections.

man -k wlogoutでどのnumberにドキュメントがあるのか確認できます。
-> ドキュメントを確認するためにはsudo mandbコマンドにより更新する必要があります。

AkidoAkido

shell scriptに挑戦しよう

  • $0 : スクリプト名 / プログラム名
  • $# : 引数の個数を表示
  • $1~n : Nこめの引数を表示 二桁以上は{}で囲む
  • $@ : すべての引数を表示
  • $$ : 実行中のシェルのプロセスID
  • $? : 最後に実行したコマンドの結果ステータス
  • $! : シェルが最後に実行したバックグラウンドプロセスのプロセスID
  • $- : シェルの実行オプション
    https://atmarkit.itmedia.co.jp/ait/articles/1810/07/news001.html

{1}という記述もでき、テキストと連続の場合に使える{1}texthoge

AkidoAkido

source command

sourceは通常のファイルの実行とほぼ同じですが、実行したファイルの変数がそのまま保持される。
つまりシェルスクリプト内でsourceによって実行されたファイルの変数をそのまま受け継ぐことができる

AkidoAkido

テスト条件

  • -z : 文字列が空であるか (空の場合true)
  • -f : ファイルが存在し、かつ通常のファイルであるかどうか
  • -d : pathがディレクトリであるか
  • -e : pathがファイルまたはディレクトリとして存在するかどうか
  • -ne : not equal

ブラケットの違い[] / [[]]

https://qiita.com/yohm/items/3527d517768402efbcb6

AkidoAkido

出力とリダイレクト

> ファイルへの上書き
>> ファイルへの追記
| パイプは、標準出力をコマンドに渡したいときに使用します。

AkidoAkido

envsubst最強説

envsubstによってできることは様々なファイルをファイルテンプレートとして変数を代入して利用することができるようになる。
例えば。
css に${hoge}という箇所を定義しておきシェルスクリプトでhoge=redのように定義し、

HOGEHOGE="$(envsubst < temp.css)"

とすることで、shell scriptで動的に取得した値をcssという静的ファイルに当てはめて使用することができる。このばあいHOGEHOGEに新しい動的なファイルが作成されているため、それをもとに特定のスタイルをもとにプロセスを開始することができる。

一般的な使い方
$ export GREETING=Hello
$ export YOUR_NAME=genzouw

$ envsubst < template.txt
Hello, genzouw!
genzouw's HOME is /root.