Shell script - kachick/dotfiles GitHub Wiki
Aside from 🤮, I need to write Shell script in several place.
This is a note for me.
test
file
-e
: exists-f
: exists & regular # "regular" means both text and binary. In other words excluding directory, symlink and device-d
: exists & directory-r
: exists & the user has read permission-w
: exists & the user has write permission-x
: exists & executable-N
: exists & modified from last read-s
: exists & non empty
string
-n
: non empty-z
: empty
set
-
-
: Enable -
+
: Disable -
-e
: exit with non 0 -
-u
: exit with undefined variable -
-x
: print executed command -
-o
: # TODO -
pipefail
: # TODO
assign value and print to tty
> dir="$(mktemp --directory | tee --append /dev/tty)"
/tmp/tmp.y2NaKkqILD
> echo $dir
/tmp/tmp.y2NaKkqILD
How to delegate multiline string to another command
- https://stackoverflow.com/a/28090709
- https://github.com/kachick/dotfiles/pull/1063/files#diff-0f761dec41f629bec1988e89fea47b068a4274580b5e4d80baeb47d45007cc54R7
- https://github.com/kachick/dotfiles/blob/beabf65a88671770b85029b71450fabee5c9868b/pkgs/git-log-fzf/git-log-fzf.bash#L28
If escape is a hard thing
- https://github.com/kachick/dotfiles/blob/beabf65a88671770b85029b71450fabee5c9868b/pkgs/fzf-bind-posix-shell-history-to-git-commit-message/fzf-bind-posix-shell-history-to-git-commit-message.bash#L9
- https://github.com/kachick/dotfiles/blob/beabf65a88671770b85029b71450fabee5c9868b/pkgs/safe_quote_backtik/safe_quote_backtik.bash#L1-L3