rokkonet

PC・Androidソフトウェア・アプリの開発・使い方に関するメモ

ディレクトリ内の画像ファイルをスライドショー表示するシェルスクリプト

2021 Feb. 26.

サブディレクトリの画像も含め、デスクトップの最前面ウインドウにランダムにスライドショー表示するスクリプト
https://bitbucket.org/arsmus/shell-script-public/src/master/image/slideshow-random-on-top.sh

デスクトップの最前面は表示前のウインドウにしたままで、サブディレクトリの画像も含めランダムにスライドショー表示するスクリプト
https://bitbucket.org/arsmus/shell-script-public/src/master/image/slideshow-random-not-top.sh

デスクトップの最前面は表示前のウインドウにしたままで、サブディレクトリの画像も含め順次表示するスクリプト
https://bitbucket.org/arsmus/shell-script-public/src/master/image/slideshow-sequencial.sh

シェルスクリプト内で、コマンドの終了を待たず次のコマンドを実行するにはバックグラウンドに回す

2021 Feb. 25.
2021 Feb. 23.

シェルスクリプト内で、処理がいったん止まる/時間がかかるコマンド(commandA)の終了を待たず次のコマンドを実行するには、commandAをバックグラウンド実行させる。

display Image.jpg &
cp File1 File2

findコマンドについて

2021 Feb. 26.
2021 Feb. 23.

  • -Lオプションを付けない時、検索対象ディレクトリ文字列の末尾に /(スラッシュ)を付けるとリンクディレクトリを検索し、付けないと検索しないみたい。

  • オプション記述の順序 -type -name -print0の順に記述する
find ~/ -type f -name '*.jpg' -print0

  • 同じオプションを-and / -orでつないで複数記述する時は、全体を \( \)で括り、他のオプションと区別する
find ~/ -type f \( -name '*.jpg' -o -name '*.jpeg' \) -print0

sleepコマンドには小数値を与えることができる

2021 Feb. 23.

出典 【linux】sleepコマンドの使用例と注意点を解説 | 金融エンジニア

100ミリ秒休止する

$ sleep 0.1

googleドライブを同期するocamlfuseをインストール

2021 Feb. 27.
2021 Feb. 23.

出典 Ubuntu20.04でGoogleドライブを同期させたので手順を書く | 非IT企業に勤める中年サラリーマンのIT日記

パッケージインストール

$ sudo add-apt-repository ppa:alessandro-strada/ppa
$ sudo apt update
$ sudo apt install google-drive-ocamlfuse


Googleアカウント認証

認証開始
$ google-drive-ocamlfuse

認証

google-drive-ocamlfuseコマンドでブラウザが起動しアカウント認証画面が開く。
画面に従って次の作業を行う。

  • アカウント特定画面になるので、googleドライブを利用するアカウントを入力する。
  • gdfuseによるアカウントへのアクセスの許可を求める画面になるので、「許可」ボタンをクリックする。
  • 選択したアカウントへのアクセスを許可する画面(確認画面)が表示されるので、「許可」ボタンをクリックする。


googleドライブディレクトリ設置

googleドライブにマウントするディレクトリを作成
$ mkdir ${HOME}/YOUR/OCAMLFUSE/DIR

作成したディレクトリをgoogleドライブにマウント
$ google-drive-ocamlfuse ${HOME}/YOUR/OCAMLFUSE/DIR


PC起動時の自動マウントをsystemdに一般ユーザーとして設定

一般ユーザーのコマンドパス設定
$ mkdir ~/bin


~/.profile にPATH設定を記述

if [ -d "$HOME/bin" ] ; then
    PATH="$HOME/bin:$PATH"
fi

googleドライブをマウントするシェルスクリプト ~/bin/mount_ocamlfuse.sh を作成

次のサイトに掲載された内容で ~/bin/mount_ocamlfuse.sh を作成する
https://bitbucket.org/arsmus/shell-script-public/src/master/linux-utility/mount_ocamlfuse.sh

( mount_ocamlfuse.sh )

#!/bin/bash
# 2021 Feb. 26.
# mount ocamlfuse on start.


Cmd=${0##*/}

################
### function ###
################
function usage() {
cat << EOS
Error. Illegal number of arguements.
Usage: $Cmd GOOGLE/DRIVE/DIR/FOR/OCAMLFUSE
EOS
}

################
##### main #####
################
# check arguement
if [ $# -ne 1 ]; then
  usage
  exit 1
fi

OcamlfuseDir="$1"
OcamlfuseDir="${OcamlfuseDir%/}"
if [ ! -d "$OcamlfuseDir" ]; then
  echo "$OcamlfuseDir does not exist." 1>&2
  usage
  exit 1
fi

google-drive-ocamlfuse "$OcamlfuseDir"
exit 0

mount_ocamlfuse.shに実行属性を付与

$ chmod 700 ~/bin/mount_ocamlfuse.sh

systemd設定ファイル作成

$ mkdir -p ~/.config/systemd/user

~/.config/systemd/user/mount_ocamlfuse.service を次の内容で作成する。

[Unit]
Description=Mount ocamlfuse-dir on google-drive
 
[Service]
Type=oneshot
ExecStart=/home/USER/bin/mount_ocamlfuse.sh /home/USER/YOUR/OCAMLFUSE/DIR
RemainAfterExit=yes
 
[Install]
WantedBy=default.target

aptリポジトリの追加と削除

2021 Feb. 23.

出典 【Ubuntu】PPAを追加・削除する方法について | Hbk project

リポジトリ追加

## 書式
$ sudo apt-add-repository ppa:[user]/[ppa-name]

## webupd8リポジトリ追加の例
$ sudo add-apt-repository ppa:nilarimogard/webupd8

リポジトリ削除

## 書式
$ sudo add-apt-repository --remove ppa:[user]/[ppa-name]

## webupd8リポジトリ削除の例
$ sudo add-apt-repository --remove ppa:nilarimogard/webupd8

sedコマンド 変数・文字列展開

2021 Feb. 27.
2021 Feb. 21.

sed基本構文

sed -e Script

Script全体を引用符で括る要否
  • Scriptを全体を必ずしも引用符で括る必要はない。
  • Script文字列はまずシェルに渡されて展開され、その後、sedに渡される。
  • シェルでの展開は通常の文字列の扱いと同じ。
  • 引用符で括らなければ展開される。
  • ダブルクォーテーションで括れば一部($ ` \ ドル変数展開、バッククォートコマンド置換、バックスラッシュエスケープ)が展開される。
  • シングルクォーテーションで括れば展開されない。
  • シェルでの展開を踏まえて変数・引用符を記述する。


シェル変数のsedでの利用
  • Scriptを引用符で括らなければ、変数がシェルで展開された上でsedに渡される。変数に空白が含まれていたら空白で文字列が分割されてしまう。
  • Scriptを二重引用符で括ると、変数はシェルで展開された上でsedに渡されるが、変数に空白が含まれていても文字列全体が1つのリテラルと扱われる。
  • Script文字列内の変数・エスケープ文字・引用符の有無に応じて、Script文字列の引用符括りの要否を判断する。