この文書の現在のバージョンと選択したバージョンの差分を表示します。
両方とも前のリビジョン 前のリビジョン 次のリビジョン | 前のリビジョン | ||
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!" | ||
+ | |||
+ | |||
+ | ``` |