2018/01/30

如何使用 << EOF 達到傳遞多行文字



在寫 shell script 時

常常會需要傳遞或是寫入多行文字

這時候 `<<EOF` 就可以派上用場了

用法1:

```sh
$ cat <<EOF > a.txt
'use strict';

const A='1';
console.log(A);
EOF
```

用法2:

# 從檔案讀取
$ sfdisk /dev/xvdb > xvdb-table

# 用 <<EOF 方式

```sh
$ sfdisk /dev/xvdb <<EOF
label: dos
label-id: 0xffffffff
device: /dev/xvdb
unit: sectors

/dev/xvdb1 : start=        2048, size=    209713152, type=83
EOF
```

EOF只是一個標示,可以改成MOA,結果是一樣的

```sh
$ cat <<MOA > a.txt
'use strict';

const A='1';
console.log(A);
MOA
```

另外,有時候寫在 shell 檔案執行時會出錯

可以加上""包起來

例如:

```sh
#!/bin/sh
cat <<"EOF" > a.txt
'use strict';

const A='1';
console.log(A);
EOF
```

在樹莓派(raspbian) 安裝 docker


廢話不多說

一行指令打天下

```sh
$ curl -sSL https://get.docker.com | sh
```

2018/01/29

如何在 ubuntu/macOS/raspbian 下安裝 docker compose



隨著進入了 docker 的世界,碰到愈來愈多東西

終於用上了 docker compose

不過常常在新系統安裝好 docker 後會發現不能使用 docker-compose

原來這個東西是要另外安裝的

依據[官方](https://docs.docker.com/compose/install/#install-compose)的文件

以下範例適合 ubuntu/macOS

```sh
# 下載
$ sudo curl -L https://github.com/docker/compose/releases/download/1.18.0/docker-compose-`uname -s`-`uname -m` -o /usr/local/bin/docker-compose
# 加上執行權限
$ sudo chmod +x /usr/local/bin/docker-compose
```

這樣就可以盡情的使用 docker-compose up 了


如果是在樹莓派 raspbian 下的話就比較麻煩了

這邊提供用pip安裝的方法

```sh
# 安裝 pip
$ sudo apt-get install python-pip
# 或 pip3
$ sudo apt-get install python3-pip

# 利用 pip 安裝 docker-compose
$ sudo pip install docker-compose
# 或 pip3
$ sudo pip3 install docker-compose

# 跑完就可以使用了
$ docker-compose -v
docker-compose version 1.18.0, build 8dd22a9
```

參考:

https://github.com/docker/compose/

https://docs.docker.com/compose/install/

https://www.digitalocean.com/community/tutorials/how-to-install-docker-compose-on-ubuntu-16-04