この文書の現在のバージョンと選択したバージョンの差分を表示します。
| 両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン | ||
|
unix [2017/10/22 01:21] fifi |
unix [2017/10/22 06:14] (現在) fifi [Bashスクリプト] |
||
|---|---|---|---|
| ライン 1: | ライン 1: | ||
| + | # linux | ||
| + | ## linuxのフォルダと配置について | ||
| + | 自作のアプリケーションの設置方法が全く分からないので調査。 | ||
| + | 色々流派があり決まりはないみたい。個人的には/home/bin, /home/lib等に入れるとよさそうだ。 | ||
| + | - [Linuxのディレクトリ構造(一覧)を理解する](https://www.linuxmaster.jp/linux_skill/2010/02/06linux.html) | ||
| - [なぜ,/var や /etc が /etc や /cfg というディレクトリ名ではないのか? ](http://d.hatena.ne.jp/ytakano/20100715/1279219401) | - [なぜ,/var や /etc が /etc や /cfg というディレクトリ名ではないのか? ](http://d.hatena.ne.jp/ytakano/20100715/1279219401) | ||
| - [自作のコマンドを作成した](https://qiita.com/yoshiken/items/2b8e6c24d6b95e65b625) | - [自作のコマンドを作成した](https://qiita.com/yoshiken/items/2b8e6c24d6b95e65b625) | ||
| + | - [linuxのフォルダと配置について](https://oshiete.goo.ne.jp/qa/6120165.html) | ||
| + | |||
| + | ## ヒアドキュメント | ||
| + | |||
| + | soracom.confに書き出される。変数展開もされる。 | ||
| + | ```bash | ||
| + | # MAKE supervisor conf | ||
| + | cat << EOS > soracom.conf | ||
| + | [program:soracom] | ||
| + | directory=${HOME}/bin/soracom | ||
| + | command=sh /opt/soracom/connect_air.sh | ||
| + | redirect_stderr=true | ||
| + | stdout_logfile=/var/log/supervisor/soracom.log | ||
| + | user=root | ||
| + | EOS | ||
| + | |||
| + | ``` | ||
| + | |||
| + | 変数に代入する | ||
| + | ```bash | ||
| + | HOGE=$(cat << EOS | ||
| + | hoge | ||
| + | fuga | ||
| + | EOS | ||
| + | ) | ||
| + | ``` | ||
| + | |||
| + | ## Bashスクリプト | ||
| + | |||
| + | - メモ "${HOME}"展開される. '${HOME}'展開されない | ||
| + | |||
| + | ```bash | ||
| + | #!/bin/bash | ||
| + | set -C #上書き防止 | ||
| + | set -eu | ||
| + | |||
| + | CMDNAME="basename $0" | ||
| + | echo "[ INFO ] CMDNAME ${CMDNAME}" | ||
| + | |||
| + | SCRIPT_DIR=$(cd $(dirname $0);pwd) | ||
| + | echo "[ INFO ] SCRIPT_DIR ${SCRIPT_DIR}" | ||
| + | # ==================================================================== | ||
| + | # Check Option | ||
| + | # cmd -t | ||
| + | # ==================================================================== | ||
| + | FLG_TEST="FALSE" | ||
| + | |||
| + | while getopts t OPT | ||
| + | do | ||
| + | case $OPT in | ||
| + | "t" ) FLG_TEST="TRUE" ;; | ||
| + | * ) echo "Usage ${CMDNAME} [-t]" 1>&2 | ||
| + | exit 1 ;; | ||
| + | esac | ||
| + | done | ||
| + | |||
| + | if [ "$FLG_TEST" = "TRUE" ]; then | ||
| + | echo "[ INFO ] TEST MODE" | ||
| + | fi | ||
| + | |||
| + | # ==================================================================== | ||
| + | # Check Bash | ||
| + | # ==================================================================== | ||
| + | if [ $SHELL == "/bin/bash" ];then | ||
| + | echo "[ OK ]Im : bash" | ||
| + | else | ||
| + | echo "[ NG ]Im ${SHELL} . Not /bin/bash" | ||
| + | echo "[Warning] Need Bash. Exit.." | ||
| + | exit 1 | ||
| + | fi | ||
| + | |||
| + | # ==================================================================== | ||
| + | # Check User | ||
| + | # ==================================================================== | ||
| + | if [ $(whoami) == 'root' ];then | ||
| + | echo "[ NG ]Fail.. Im root.." | ||
| + | echo "[ NG ]Please Input => bash setup.sh" | ||
| + | echo "[ NG ]Not use sudo .." | ||
| + | exit 1 | ||
| + | else | ||
| + | echo "[ OK ]Im $(whoami).. not root." | ||
| + | fi | ||
| + | |||
| + | # ==================================================================== | ||
| + | # COMMAND EXISTS | ||
| + | # ==================================================================== | ||
| + | if type aws > /dev/null 2>&1;then | ||
| + | echo "[ OK ]Exists aws command." | ||
| + | echo "[ OK ]$(aws --version)" | ||
| + | else | ||
| + | echo "[ NG ]Fail! Uninstall aws command." | ||
| + | exit 1 | ||
| + | fi | ||
| + | |||
| + | # ==================================================================== | ||
| + | # CONFIG key | ||
| + | # ==================================================================== | ||
| + | CONFIG_KEY="${BASE_DIR}/configkey" | ||
| + | . ${CONFIG_KEY} | ||
| + | |||
| + | # ==================================================================== | ||
| + | # EXISTS DIR | ||
| + | # ==================================================================== | ||
| + | if [ ! -e ${BASE_DIR} ];then | ||
| + | echo "[ INFO ] DIR ${BASE_DIR} is nothing" | ||
| + | fi | ||
| + | |||
| + | # ==================================================================== | ||
| + | # mkdir | ||
| + | # ==================================================================== | ||
| + | mkdir -p ${PHOTOS_DIR} | ||
| + | |||
| + | # ==================================================================== | ||
| + | |||
| + | echo "[ OK ] Finish! Setup!" | ||
| + | |||
| + | |||
| + | ``` | ||