sh raspi-motd.sh

raspi-motd.sh
#!/bin/bash

logo="$(tput setaf 2)
       .~~.   .~~.
      '. \ ' ' / .'$(tput setaf 1)
       .~ .~~~..~.    $(tput sgr0)                   _                          _ $(tput setaf 1)
      : .~.'~'.~. :   $(tput sgr0)   ___ ___ ___ ___| |_ ___ ___ ___ _ _    ___|_|$(tput setaf 1)
     ~ (   ) (   ) ~  $(tput sgr0)  |  _| .'|_ -| . | . | -_|  _|  _| | |  | . | |$(tput setaf 1)
    ( : '~'.~.'~' : ) $(tput sgr0)  |_| |__,|___|  _|___|___|_| |_| |_  |  |  _|_|$(tput setaf 1)
     ~ .~ (   ) ~. ~  $(tput sgr0)              |_|                 |___|  |_|    $(tput setaf 1)
      (  : '~' :  )
       '~ .~~~. ~'
           '~'
$(tput sgr0)"

if [ `whoami` != "root" ]; then
  echo "$logo"
  echo "Run as root to update your motd."
else
  echo "$logo" > /etc/motd
  /etc/init.d/bootlogs
  echo "Updated MOTD. Log in to see the new logo."
fi

sh 更改docker主机ip

更改docker主机ip

docker_mod.sh
apt-get install -y bridge-utils
service docker stop
sed -i 's*#DOCKER_OPTS="--dns 8.8.8.8 --dns 8.8.4.4"*DOCKER_OPTS="--bip=10.127.127.1/24 --dns 8.8.8.8 --dns 8.8.4.4"*g' /etc/default/docker
ip link set dev docker0 down
brctl delbr docker0
service docker start

sh 俄语文件名的音译

俄语文件名的音译

russian-to-latin.sh
#!/bin/bash

shopt -s nullglob
for NAME in * ; do
 TRS=`echo $NAME | sed "y/ абвгдезийклмнопрстуфхцы/_abvgdezijklmnoprstufxcy/"`
 TRS=`echo $TRS | sed "y/ АБВГДЕЗИЙКЛМНОПРСТУФХЦЫ/_ABVGDEZIJKLMNOPRSTUFXCY/"`
 TRS=${TRS//ч/ch};
 TRS=${TRS//Ч/CH} TRS=${TRS//ш/sh};
 TRS=${TRS//Ш/SH} TRS=${TRS//ё/jo};
 TRS=${TRS//Ё/JO} TRS=${TRS//ж/zh};
 TRS=${TRS//Ж/ZH} TRS=${TRS//щ/sh\'};
 TRS=${TRS///SH\'} TRS=${TRS//э/je};
 TRS=${TRS//Э/JE} TRS=${TRS//ю/ju};
 TRS=${TRS//Ю/JU} TRS=${TRS//я/ja};
 TRS=${TRS//Я/JA} TRS=${TRS//ъ/\`};
 TRS=${TRS//ъ\`} TRS=${TRS//ь/\'};
 TRS=${TRS//Ь/\'}
 if [[ `file -b "$NAME"` == directory ]]; then
 mv -v "$NAME" "$TRS"
 cd "$TRS"
 "$0"
 cd ..
 else
 mv -v "$NAME" "$TRS"
 fi
done

sh restore-file-from-package.sh

restore-file-from-package.sh
#!/bin/bash

# Usage:
#
#     sudo ./restore-file-from-package.sh <filepath>
#
# Restore a file from the package that provides it.
#
# Source: http://askubuntu.com/a/67028/30482
# using --force-confask instead of confmiss to
# merge if partially customized file is present

set -x
set -e

FILE_TO_RESTORE=$(readlink -e $1)
mv -n ${FILE_TO_RESTORE} ${FILE_TO_RESTORE}.bak
apt-get -o Dpkg::Options::="--force-confask" install --reinstall $(dpkg -S ${FILE_TO_RESTORE} | head -1 | cut -d ':' -f1)

sh 常用外壳命令

常用外壳命令

useful_shell.sh
# 找出java进程并杀掉
ps -ef | grep java | kill -9 `awk '{print $2}'` 

# MAC下看某个端口被占用情况 (TCP/LISTEN)
lsof -n -i4TCP:8080 | grep LISTEN

sh 销毁AWS VPC <br/> <br/>依赖预先安装了aws-cli的docker镜像

销毁AWS VPC <br/> <br/>依赖预先安装了aws-cli的docker镜像

delete-vpc.bash
#!/bin/bash

# docker run --rm -t -i -v $(pwd)/.awscreds:/root/.aws alexturek/aws-cli-docker configure

alias aws="docker run --rm -t -i -v $(pwd)/.awscreds:/root/.aws alexturek/aws-cli-docker"

# vpc name
name=Sandbox

# query for vpc idvpc
vpc=$(aws ec2 describe-vpcs --filters "Name=tag-value,Values=${name}" --output text --query "Vpcs[].VpcId")

# default filter
filter="Name=vpc-id,Values=${vpc}"

echo "terminate all instances in your VPC"
instance_ids=$(aws ec2 describe-instances --filters $filter --output text --query "Reservations[].Instances[].InstanceId")

for instance in ${instance_ids}; do
  echo "stopping instance: ${instance}"
  aws ec2 stop-instances --instance-ids $instance --output text

  volume_ids=$(aws ec2 describe-volumes --filters "Name=attachment.instance-id,Values=${instance}" --output text --query "Volumes[].VolumeId")

  for volume in ${volume_ids}; do
    echo "detaching volume: ${volume}"
    aws ec2 detach-volume --volume-id $volume --output text
    echo "deleting volume: ${volume}"
    aws ec2 delete-volume --volume-id $volume --output text
  done

  echo "terminating instance: ${instance}"
  aws ec2 terminate-instances --instance-ids $instance --output text
done

echo "delete all ENI's associated with subnets within your VPC"
eni_ids=$(aws ec2 describe-network-interfaces --filters $filter --output text --query "NetworkInterfaces[].NetworkInterfaceId")

for eni in ${eni_ids}; do
  echo "delete network interface: ${eni}"
  aws ec2 delete-network-interface --network-interface-id $eni
done

echo "disassociate all route tables from all the subnets in your VPC"
association_ids=$(aws ec2 describe-route-tables --filters $filter --output text --query "RouteTables[].Associations[].RouteTableAssociationId")

for association in ${association_ids}; do
  echo "delete route table association: ${association}"
  aws ec2 disassociate-route-table --association-id $association
done

echo "delete all route tables other than the 'Main' table"
route_table_ids=$(aws ec2 describe-route-tables --filters $filter --output text --query "RouteTables[].RouteTableId")

for route_table in ${route_table_ids}; do
  echo "delete route table: ${route_table}"
  aws ec2 delete-route-table --route-table-id $route_table
done

echo "delete all internet gateways"
gateway_ids=$(aws ec2 describe-internet-gateways --filters "Name=attachment.vpc-id,Values=${vpc}" --output text --query "InternetGateways[].InternetGatewayId")

for gateway in ${gateway_ids}; do
  echo "detach internet gateway: ${gateway}"
  aws ec2 detach-internet-gateway --internet-gateway-id $gateway --vpc-id $vpc
  echo "delete internet gateway: ${gateway}"
  aws ec2 delete-internet-gateway --internet-gateway-id $gateway
done

echo "disassociate all Network ACL's from all the subnets in your VPC"
# acl_ids=$(aws ec2 describe-network-acls --filters $filter --output text --query "NetworkAcls[].NetworkAclId")

# for acl in ${acl_ids}; do
#   echo "delete route table: ${acl}"
#   aws ec2 delete-network-acl --network-acl-id $acl
# done

echo "delete all Network ACL's other than the Default one"
acl_ids=$(aws ec2 describe-network-acls --filters $filter --output text --query "NetworkAcls[].NetworkAclId")

for acl in ${acl_ids}; do
  echo "delete network acl: ${acl}"
  aws ec2 delete-network-acl --network-acl-id $acl
done

echo "delete all Security groups other than the Default one (note: if one group has a rule that references another, you have to delete that rule before you can delete the other security group)"
security_group_ids=$(aws ec2 describe-security-groups --filters $filter --output text --query "SecurityGroups[].GroupId")

for security_group in ${security_group_ids}; do
  echo "delete network acl: ${security_group}"
  aws ec2 delete-security-group --group-id $security_group
done

echo "delete all subnets"
subnet_ids=$(aws ec2 describe-subnets --filters $filter --output text --query "Subnets[].SubnetId")

for subnet in ${subnet_ids}; do
  echo "delete subnet: ${subnet}"
  aws ec2 delete-subnet --subnet-id $subnet
done

echo "delete your VPC"
aws ec2 delete-vpc --vpc-id $vpc

echo "delete any DHCP Option Sets that had been used by the VPC"
# done manually, could not determine how to query by vpc

sh Criar虚拟主机没有Ubuntu

Criar虚拟主机没有Ubuntu

tutorial.sh
# Com sudo, criar o arquivo em 

/etc/apache2/sites-available/meusite.local

# Com a seguinte configuração

<VirtualHost *:80>
	ServerAdmin meuemail@gmail.com

	DocumentRoot /var/www/meusite
	ServerName meusite.local
  ServerAlias meusite.local
</VirtualHost>

# Executar o comando
sudo a2ensite mysite
sudo service apache2 restart

# Incluir no arquiv hosts /etc/hosts
127.0.0.1	localhost meusite.local

# Salvar, fechar e testar http://meusite.local
rewrite.sh
# No arquivo .conf do virtual hosts adicionar esse código

<Directory "/var/www/html/meusiteaqui">
    AllowOverride All
</Directory>

sh 删除已停止的Docker容器,未标记且不是给定存储库的最新Docker镜像

删除已停止的Docker容器,未标记且不是给定存储库的最新Docker镜像

docker-cleanup.sh
#!/bin/bash -u
#
# Clean Docker containers and images.
#
# This script assumes that the docker images are tagged with a version (like a git sha1) and 'latest'.
#
# WARNING: only 'latest' Docker images for the given repo are kept after a cleanup!
#
# Example of how to tag a Docker image with a version and 'latest':
#   $ docker build --rm -t $REPO/$NAME:$VERSION .
#   $ docker tag -f $REPO/$NAME:$VERSION $(ORG)/$NAME:latest
#

# The repo to use to filter images to delete
REPO=$1

# Utils functions
countContainers()       { docker ps -aq | wc -l; }
listStoppedContainers() { docker ps -a  | grep Exit | awk '{print $1}'; }
countmages()            { docker images | egrep -c "($REPO|none)"; }
listNotLatestImages()   { docker images | grep $REPO | grep -v latest | awk '{printf "%s:%s\n", $1, $2}'; }
listUntaggedImages()    { docker images -q -f dangling=true; }
log() { echo "[$(date +"%Y-%m-%dT%H:%M:%SZ")][docker-cleanup] $1"; }

totalContainers=$(countContainers)
totalImages=$(countmages)
log "Total containers: $totalContainers"
log "Total images: $totalImages"

#  Delete all stopped containers
containerIds=$(listStoppedContainers)
if [[ "$containerIds" != "" ]]; then
    log "Remove stopped containers..."
    docker rm $containerIds
fi

# Delete not latest images
oldImages=$(listNotLatestImages)
if [[ "$oldImages" != "" ]]; then
    log "Remove not latest images..."
    docker rmi -f $oldImages
fi

# Delete all untagged images
untaggedImages=$(listUntaggedImages)
if [[ "$untaggedImages" != "" ]]; then
    log "Remove untagged images..."
    docker rmi $untaggedImages
fi

newTotalContainers=$(countContainers)
newTotalImages=$(countmages)

log "---"
log "Containers deleted: $(expr $totalContainers - $newTotalContainers)"
log "Images deleted: $(expr $totalImages - $newTotalImages)"
log "---"
log "Total containers: $newTotalContainers"
log "Total images: $newTotalImages"

sh wordpress xmlrpc测试

wordpress xmlrpc测试

wp_xmlrpc_test.sh
## get Methods available:
## curl -s --data "<?xml version="1.0"?><methodCall><methodName>system.listMethods</methodName><params><param><value><string/></value></param></params></methodCall>" http://${WORDPRESS_SITE}/xmlrpc.php
##

for i in system.multicall system.listMethods system.getCapabilities demo.addTwoNumbers demo.sayHello pingback.extensions.getPingbacks pingback.ping wp.restoreRevision wp.getRevisions wp.getPostTypes wp.getPostType wp.getPostFormats wp.getMediaLibrary wp.getMediaItem wp.getCommentStatusList wp.newComment wp.editComment wp.deleteComment wp.getComments wp.getComment wp.setOptions wp.getOptions wp.getPageTemplates wp.getPageStatusList wp.getPostStatusList wp.getCommentCount wp.deleteFile wp.uploadFile wp.suggestCategories wp.deleteCategory wp.newCategory wp.getTags wp.getCategories wp.getAuthors wp.getPageList wp.editPage wp.deletePage wp.newPage wp.getPages wp.getPage wp.editProfile wp.getProfile wp.getUsers wp.getUser wp.getTaxonomies wp.getTaxonomy wp.getTerms wp.getTerm wp.deleteTerm wp.editTerm wp.newTerm wp.getPosts wp.getPost wp.deletePost wp.editPost wp.newPost wp.getUsersBlogs; do echo -e "\n==\n MethodCall: $i\n $(date)\n"; curl -s --data "<?xml version="1.0"?><methodCall><methodName>$i</methodName><params><param><value><string/></value></param></params></methodCall>" http://${WORDPRESS_SITE}/xmlrpc.php; sleep 2s; done

##
## add to /etc/apache2/apache2.conf before any "Include "-Statements
##
## <Files xmlrpc.php>
##     Deny from all
##     Satisfy all
## </Files>
##
## maybe you want to add something like 
##
## ErrorDocument 403 https://twitter.com/intent/tweet?text=maaan!%20i%20am%20so%20fucking%20lame
##

sh rbenv-update的调试日志

rbenv-update的调试日志

working.sh
$ rbenv --debug update
+ [rbenv:15] enable -f /Users/jasonkarns/.rbenv/bin/../libexec/rbenv-realpath.dylib realpath
+ [rbenv:21] '[' -n '' ']'
++ [rbenv:25] type -p greadlink readlink
++ [rbenv:25] head -1
+ [rbenv:25] READLINK=/usr/local/bin/greadlink
+ [rbenv:26] '[' -z /usr/local/bin/greadlink ']'
+ [rbenv:50] '[' -z '' ']'
+ [rbenv:51] RBENV_ROOT=/Users/jasonkarns/.rbenv
+ [rbenv:55] export RBENV_ROOT
+ [rbenv:57] '[' -z '' ']'
++ [rbenv:58] pwd
+ [rbenv:58] RBENV_DIR=/Users/jasonkarns
+ [rbenv:67] export RBENV_DIR
+ [rbenv:70] shopt -s nullglob
++ [rbenv:72] abs_dirname /Users/jasonkarns/.rbenv/bin/rbenv
+++ [rbenv:36] pwd
++ [rbenv:36] local cwd=/Users/jasonkarns
++ [rbenv:37] local path=/Users/jasonkarns/.rbenv/bin/rbenv
++ [rbenv:39] '[' -n /Users/jasonkarns/.rbenv/bin/rbenv ']'
++ [rbenv:40] cd /Users/jasonkarns/.rbenv/bin
++ [rbenv:41] local name=rbenv
+++ [rbenv:42] resolve_link rbenv
+++ [rbenv:32] /usr/local/bin/greadlink rbenv
++ [rbenv:42] path=../libexec/rbenv
++ [rbenv:39] '[' -n ../libexec/rbenv ']'
++ [rbenv:40] cd ../libexec
++ [rbenv:41] local name=rbenv
+++ [rbenv:42] resolve_link rbenv
+++ [rbenv:32] /usr/local/bin/greadlink rbenv
+++ [rbenv:42] true
++ [rbenv:42] path=
++ [rbenv:39] '[' -n '' ']'
++ [rbenv:45] pwd
++ [rbenv:46] cd /Users/jasonkarns
+ [rbenv:72] bin_path=/Users/jasonkarns/.rbenv/libexec
+ [rbenv:73] for plugin_bin in '"${RBENV_ROOT}/plugins/"*/bin'
+ [rbenv:74] PATH='/Users/jasonkarns/.rbenv/plugins/rbenv-update/bin:/Users/jasonkarns/.rbenv/shims:/Users/jasonkarns/.rbenv/bin:/usr/local/var/rbenv/shims:/usr/local/var/nodenv/shims:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/opt/X11/bin:/usr/local/MacGPG2/bin:~/bin'
+ [rbenv:76] export 'PATH=/Users/jasonkarns/.rbenv/libexec:/Users/jasonkarns/.rbenv/plugins/rbenv-update/bin:/Users/jasonkarns/.rbenv/shims:/Users/jasonkarns/.rbenv/bin:/usr/local/var/rbenv/shims:/usr/local/var/nodenv/shims:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/opt/X11/bin:/usr/local/MacGPG2/bin:~/bin'
+ [rbenv:76] PATH='/Users/jasonkarns/.rbenv/libexec:/Users/jasonkarns/.rbenv/plugins/rbenv-update/bin:/Users/jasonkarns/.rbenv/shims:/Users/jasonkarns/.rbenv/bin:/usr/local/var/rbenv/shims:/usr/local/var/nodenv/shims:/usr/local/bin:/usr/bin:/bin:/usr/local/sbin:/usr/sbin:/sbin:/opt/X11/bin:/usr/local/MacGPG2/bin:~/bin'
+ [rbenv:78] RBENV_HOOK_PATH=:/Users/jasonkarns/.rbenv/rbenv.d
+ [rbenv:79] '[' /Users/jasonkarns/.rbenv '!=' /Users/jasonkarns/.rbenv ']'
+ [rbenv:83] RBENV_HOOK_PATH=:/Users/jasonkarns/.rbenv/rbenv.d:/usr/local/etc/rbenv.d:/etc/rbenv.d:/usr/lib/rbenv/hooks
+ [rbenv:87] export RBENV_HOOK_PATH
+ [rbenv:89] shopt -u nullglob
+ [rbenv:92] command=update
+ [rbenv:93] case "$command" in
++ [rbenv:101] command -v rbenv-update
+ [rbenv:101] command_path=/Users/jasonkarns/.rbenv/plugins/rbenv-update/bin/rbenv-update
+ [rbenv:102] '[' -z /Users/jasonkarns/.rbenv/plugins/rbenv-update/bin/rbenv-update ']'
+ [rbenv:107] shift 1
+ [rbenv:108] exec /Users/jasonkarns/.rbenv/plugins/rbenv-update/bin/rbenv-update
+++ [rbenv-update:25] which rbenv
++ [rbenv-update:25] dirname /Users/jasonkarns/.rbenv/libexec/rbenv
+ [rbenv-update:25] cd /Users/jasonkarns/.rbenv/libexec
+ [rbenv-update:26] rbenv_update rbenv
+ [rbenv-update:16] echo -e '\033[1;32mupdating rbenv\033[0m'
updating rbenv
+ [rbenv-update:17] is_rbenv_git_repo
++ [rbenv-update:12] git remote -v
++ [rbenv-update:12] grep -E 'rbenv|ruby-build'
+ [rbenv-update:18] indent_output
+ [rbenv-update:18] git pull --no-rebase --ff
+ [rbenv-update:6] read data
+ [rbenv-update:7] echo -e ' \033[1;32m|\033[0m  Already up-to-date.'
 |  Already up-to-date.
+ [rbenv-update:6] read data
+ [rbenv-update:22] echo

+ [rbenv-update:28] cd /Users/jasonkarns/.rbenv
+ [rbenv-update:29] for plugin in 'plugins/*'
+ [rbenv-update:30] pushd plugins/rbenv-update
++ [rbenv-update:31] basename plugins/rbenv-update
+ [rbenv-update:31] rbenv_update rbenv-update
+ [rbenv-update:16] echo -e '\033[1;32mupdating rbenv-update\033[0m'
updating rbenv-update
+ [rbenv-update:17] is_rbenv_git_repo
++ [rbenv-update:12] git remote -v
++ [rbenv-update:12] grep -E 'rbenv|ruby-build'
+ [rbenv-update:18] git pull --no-rebase --ff
+ [rbenv-update:18] indent_output
+ [rbenv-update:6] read data
+ [rbenv-update:7] echo -e ' \033[1;32m|\033[0m  Already up-to-date.'
 |  Already up-to-date.
+ [rbenv-update:6] read data
+ [rbenv-update:22] echo

+ [rbenv-update:32] popd
broken.sh
$ RBENV_DEBUG=1 rbenv update | pbcopy
+ [rbenv:15] enable -f /Users/David/.rbenv/bin/../libexec/rbenv-realpath.dylib realpath
+ [rbenv:21] '[' -n '' ']'
++ [rbenv:25] type -p greadlink readlink
++ [rbenv:25] head -1
+ [rbenv:25] READLINK=/usr/bin/readlink
+ [rbenv:26] '[' -z /usr/bin/readlink ']'
+ [rbenv:50] '[' -z '' ']'
+ [rbenv:51] RBENV_ROOT=/Users/David/.rbenv
+ [rbenv:55] export RBENV_ROOT
+ [rbenv:57] '[' -z '' ']'
++ [rbenv:58] pwd
+ [rbenv:58] RBENV_DIR=/Users/David
+ [rbenv:67] export RBENV_DIR
+ [rbenv:70] shopt -s nullglob
++ [rbenv:72] abs_dirname /Users/David/.rbenv/bin/rbenv
+++ [rbenv:36] pwd
++ [rbenv:36] local cwd=/Users/David
++ [rbenv:37] local path=/Users/David/.rbenv/bin/rbenv
++ [rbenv:39] '[' -n /Users/David/.rbenv/bin/rbenv ']'
++ [rbenv:40] cd /Users/David/.rbenv/bin
++ [rbenv:41] local name=rbenv
+++ [rbenv:42] resolve_link rbenv
+++ [rbenv:32] /usr/bin/readlink rbenv
++ [rbenv:42] path=../libexec/rbenv
++ [rbenv:39] '[' -n ../libexec/rbenv ']'
++ [rbenv:40] cd ../libexec
++ [rbenv:41] local name=rbenv
+++ [rbenv:42] resolve_link rbenv
+++ [rbenv:32] /usr/bin/readlink rbenv
+++ [rbenv:42] true
++ [rbenv:42] path=
++ [rbenv:39] '[' -n '' ']'
++ [rbenv:45] pwd
++ [rbenv:46] cd /Users/David
+ [rbenv:72] bin_path=/Users/David/.rbenv/libexec
+ [rbenv:73] for plugin_bin in '"${RBENV_ROOT}/plugins/"*/bin'
+ [rbenv:74] PATH='/Users/David/.rbenv/plugins/rbenv-update/bin:/Users/David/.rbenv/shims:/Users/David/.rbenv/bin:/usr/local/bin:/usr/local/sbin:~/bin:/Applications/Postgres.app/Contents/Versions/9.4/bin:/usr/local/heroku/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/lib'
+ [rbenv:73] for plugin_bin in '"${RBENV_ROOT}/plugins/"*/bin'
+ [rbenv:74] PATH='/Users/David/.rbenv/plugins/ruby-build/bin:/Users/David/.rbenv/plugins/rbenv-update/bin:/Users/David/.rbenv/shims:/Users/David/.rbenv/bin:/usr/local/bin:/usr/local/sbin:~/bin:/Applications/Postgres.app/Contents/Versions/9.4/bin:/usr/local/heroku/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/lib'
+ [rbenv:76] export 'PATH=/Users/David/.rbenv/libexec:/Users/David/.rbenv/plugins/ruby-build/bin:/Users/David/.rbenv/plugins/rbenv-update/bin:/Users/David/.rbenv/shims:/Users/David/.rbenv/bin:/usr/local/bin:/usr/local/sbin:~/bin:/Applications/Postgres.app/Contents/Versions/9.4/bin:/usr/local/heroku/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/lib'
+ [rbenv:76] PATH='/Users/David/.rbenv/libexec:/Users/David/.rbenv/plugins/ruby-build/bin:/Users/David/.rbenv/plugins/rbenv-update/bin:/Users/David/.rbenv/shims:/Users/David/.rbenv/bin:/usr/local/bin:/usr/local/sbin:~/bin:/Applications/Postgres.app/Contents/Versions/9.4/bin:/usr/local/heroku/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/usr/lib'
+ [rbenv:78] RBENV_HOOK_PATH=:/Users/David/.rbenv/rbenv.d
+ [rbenv:79] '[' /Users/David/.rbenv '!=' /Users/David/.rbenv ']'
+ [rbenv:83] RBENV_HOOK_PATH=:/Users/David/.rbenv/rbenv.d:/usr/local/etc/rbenv.d:/etc/rbenv.d:/usr/lib/rbenv/hooks
+ [rbenv:87] export RBENV_HOOK_PATH
+ [rbenv:89] shopt -u nullglob
+ [rbenv:92] command=sh-update
+ [rbenv:93] case "$command" in
++ [rbenv:101] command -v rbenv-sh-update
+ [rbenv:101] command_path=/Users/David/.rbenv/plugins/rbenv-update/bin/rbenv-sh-update
+ [rbenv:102] '[' -z /Users/David/.rbenv/plugins/rbenv-update/bin/rbenv-sh-update ']'
+ [rbenv:107] shift 1
+ [rbenv:108] exec /Users/David/.rbenv/plugins/rbenv-update/bin/rbenv-sh-update
++ [rbenv-sh-update:5] which rbenv-update
+ [rbenv-sh-update:5] echo -n '/Users/David/.rbenv/plugins/rbenv-update/bin/rbenv-update && '
+ [rbenv-sh-update:6] echo -n 'echo -e "\033[1;32mreloading rbenv\033[0m" && '
+ [rbenv-sh-update:7] echo -n 'eval "$(rbenv init -)" && '
+ [rbenv-sh-update:8] echo -n 'echo -e " \033[1;32m|\033[0m  done"'
+ [rbenv-sh-update:10] echo
+++ which rbenv
++ dirname /Users/David/.rbenv/bin/rbenv
+ cd /Users/David/.rbenv/bin
+ rbenv_update rbenv
+ echo -e '\033[1;32mupdating rbenv\033[0m'
+ is_rbenv_git_repo
++ grep rbenv
++ git remote -v
+ git pull --no-rebase --ff
+ indent_output
+ read data
+ echo -e ' \033[1;32m|\033[0m  Already up-to-date.'
+ read data
+ echo
+ cd
+ for plugin in 'plugins/*'
+ pushd 'plugins/*'
/Users/David/.rbenv/plugins/rbenv-update/bin/rbenv-update: line 30: pushd: plugins/*: No such file or directory