豚吐露@wiki

ShScript

最終更新:

ohden

- view
管理者のみ編集可

~tips~


~memo~

  1. #!/bin/sh
  2.  
  3. today=`\date "+%Y%m%d"`
  4. mkdir /home/pubuntu/backup/$today
  5. tar czvf /home/pubuntu/backup/repos$today.tar.gz /home/pubuntu/wk/repos/

  1. #!/bin/sh
  2.  
  3. if [ "" != ${1} ]
  4. then
  5. today=`\date "+%Y%m%d"`
  6. else
  7. today=$1
  8. fi

chmod 770 $today
chmod 660 $today/*

引数の数チェック
実行時引数が1つならhogehogeが実行される。1つ以外なら1を吐いて終了。
  1. if [ $# -ne 1 ]; then
  2. echo "Error: Please type argument."
  3. exit 1
  4. fi
  5.  
  6. hogehoge





~φ(..*)メモメモ...~

コマンドの後ろに論理演算子付けてる書き方がどうなるか分からんくなるのでメモ。

短絡評価と呼ばれるもの。ShScriptに限った話ではない。言語仕様を確認すれば、他の言語でも利用することは可能みたい。
実行コマンド 結果 備考
# [ ] && { echo hoge; } testの結果が0以外(false)だと、中括弧内の処理は実施されない。
# [ 1 ] && { echo hoge; } hoge testの結果が0(true)だと、中括弧内の処理は実施される。
# [ ] || { echo hoge; } hoge testの結果が0以外(false)だと、中括弧内の処理は実施される。
# [ 1 ] || { echo hoge; } testの結果が0(true)だと、中括弧内の処理は実施されない。
要は、直前のコマンドの結果で中括弧内の処理を行うか行わんかという制御に使うみたい。

ワイルドカードでpath指定すると該当する一覧が取れる。

$ echo /???/
/bin/ /dev/ /etc/ /lib/ /mnt/ /opt/ /run/ /srv/ /sys/ /tmp/ /usr/ /var/

$ echo /*/
/bin/ /boot/ /dev/ /etc/ /home/ /lib/ /lib64/ /media/ /mnt/ /opt/ /proc/ /root/ /run/ /sbin/ /snap/ /srv/ /sys/ /tmp/ /usr/ /var/

$ echo /???/???/*32
/usr/bin/base32 /usr/bin/linux32




更新日: 2019年03月20日 (水) 18時54分48秒

  • execの使い方: http://x68000.q-e-d.net/~68user/unix/pickup?exec -- (s1n) 2012-09-06 13:19:21
  • 入出力のリダイレクト: http://itpro.nikkeibp.co.jp/article/COLUMN/20060228/231093/ -- (s1n) 2012-09-06 14:41:59
  • ShScriptデバッグ①: bash -x hoge.sh って実行するか、1行目の #/bin/bash を #/bin/bash -x にする。 -- (s1n) 2012-09-10 19:06:29
  • linuxで文字列操作する時は『sed』『awk』 -- (s1n) 2012-09-11 17:14:48
  • 文字列中に『|』が入った変数をコマンドとして実行したい場合は『eval』を使う。でないとパイプが『'』で囲まれてしまって使い物にならない。 -- (s1n) 2012-09-11 20:28:04
  • 『`~`』と『$(~)』は一緒みたい。 -- (s1n) 2013-07-31 20:56:35
  • 『#!』から始まる行を『shebang(シェバン)』って言うらしい。 -- (s1n) 2019-03-05 08:59:20
  • getopts でoption処理するの、コマンド忘れるからメモ。 -- (s1n) 2019-03-07 10:45:08
  • fzf https://github.com/junegunn/fzf
    出力を選択肢にして表示、選択した内容を返却してくれる。 -- (s1n) 2019-08-21 13:05:30
  • 定間隔でコマンドを実行したい場合、watchが便利。
    以下の例だと1秒起きにdateを実行してくれる。
    watch -n 1 'date "+%F %T"'
    ただし、watchは指定した処理が終わってから指定時間数え始めるので1周期は『指定時間+処理時間』になる。 -- (s1n) 2019-08-21 13:08:31
名前:
コメント:

すべてのコメントを見る

タグ:

linux sh script
記事メニュー
目安箱バナー