ssh执行远程命令和bash -c string的用法
说明:
今天在学习k8s的Run a Replicated Stateful Application (运行一个有状态应用的副本)时,官网上给出StatefulSet yaml配置文件中出现如下内容:
spec: initContainers: - name: init-MysqL image: MysqL:5.7 command: - bash - "-c" - | set -ex # Generate MysqL server-id from pod ordinal index. [[ `hostname` =~ -([0-9]+)$ ]] || exit 1 ordinal=${BASH_REMATCH[1]} echo [MysqLd] > /mnt/conf.d/server-id.cnf # Add an offset to avoid reserved server-id=0 value. echo server-id=$((100 + $ordinal)) >> /mnt/conf.d/server-id.cnf # Copy appropriate conf.d files from config-map to emptyDir. if [[ $ordinal -eq 0 ]]; then cp /mnt/config-map/master.cnf /mnt/conf.d/ else cp /mnt/config-map/slave.cnf /mnt/conf.d/ fi
其中的bash -c有些不明白,所以man bash查看下:
-c string If the -c option is present,then commands are read from string. If there are arguments after the string,they are assigned to the positional parameters,starting with $0.
参考文档:
http://baohaojun.github.io/blog/2013/12/11/0-ssh-remote-command-and-bash--c-string.html