summaryrefslogtreecommitdiff
path: root/home/xyz/.bashrc
diff options
context:
space:
mode:
authorXiao Pan <gky44px1999@gmail.com>2024-06-24 19:36:58 -0700
committerXiao Pan <gky44px1999@gmail.com>2024-06-24 19:36:58 -0700
commit42f9611151b4490e792eb0563fea270bed630a2b (patch)
tree8e120bce90c07108ee0c79023e8f87e3ae027bd9 /home/xyz/.bashrc
parent9b400383f3de011f8b6c993a29affa272959f583 (diff)
feat: .bashrc auto alias ssh VPS
Diffstat (limited to 'home/xyz/.bashrc')
-rw-r--r--home/xyz/.bashrc20
1 files changed, 18 insertions, 2 deletions
diff --git a/home/xyz/.bashrc b/home/xyz/.bashrc
index 31347f31..5adab160 100644
--- a/home/xyz/.bashrc
+++ b/home/xyz/.bashrc
@@ -43,6 +43,24 @@ for cmd in loop o 'watch -c'; do
done
unset cmd
+# note: the following code pipe to while read will not work, because pipe create subshell
+#git -C "$HOME/programs/config_local_arch" branch | awk '{print ($1=="*")?$2:$1}' | grep -v master | while read -r branch; do
+# `man bash`: "Each command in a multi-command pipeline, where pipes are created, is executed in a subshell, which is a separate process."
+# https://stackoverflow.com/questions/56327528/bash-aliases-set-in-while-loop-not-persisting
+# can be tested via $BASHPID, note $$ will not work, because $$ does not show subshell pid
+# another way is: echo "$(exec sh -c 'echo "$PPID"')"
+# `man bash`:
+# > BASHPIP Expands to the process ID of the current bash process. This differs from $$ under certain circumstances, such as subshells that do not require bash to be re-initialized.
+# > $ Expands to the process ID of the shell. In a subshell, it expands to the process ID of the current shell, not the subshell.
+# https://unix.stackexchange.com/questions/484442/how-can-i-get-the-pid-of-a-subshell
+for branch in $(git -C "$HOME/programs/config_local_arch" branch | awk '{print ($1=="*")?$2:$1}' | grep -v master); do
+ case "$branch" in
+ master|studio|pp) ;;
+ *) alias "s$branch"="ssh $branch";;
+ esac
+done
+unset branch
+
# different name
alias a=alarm
# /dev/ttyACM0 can be in config file, or as environmantal variable, see /usr/share/doc/adafruit-ampy/README.md
@@ -77,9 +95,7 @@ alias r='rem -cu+2 -@'
# https://askubuntu.com/a/22043
alias s='sudo '
alias sa='ssh-add -l || ssh-add'
-alias sca='ssh ca'
alias se='sudo -E '
-alias sia='ssh ia'
alias sp='ssh pp'
alias spd='speedtest; librespeed-cli'
alias sst='ssh studio'