diff options
author | Tom Ryder <tom@sanctum.geek.nz> | 2013-07-30 14:58:54 +1200 |
---|---|---|
committer | Tom Ryder <tom@sanctum.geek.nz> | 2013-07-30 14:58:54 +1200 |
commit | f2ed10433e2dcf4a57f04b4e10e0ec8e0d30d119 (patch) | |
tree | e564125478224eade8cc6218418ca4c93ae08ab1 /bash | |
parent | Bracing variable for safety (diff) | |
download | dotfiles-f2ed10433e2dcf4a57f04b4e10e0ec8e0d30d119.tar.gz dotfiles-f2ed10433e2dcf4a57f04b4e10e0ec8e0d30d119.zip |
More portable non-surprise syntax for functions
<tyrmored> is this syntax actually problematic?
<tyrmored> function whatever {
<tyrmored> thangs
<tyrmored> }
<zendeavor> !pf function
<greybot> http://mywiki.wooledge.org/BashPitfalls#pf25 -- Don't do this! --
function foo()
<tyrmored> i know it's bashism, but is it bad practice
<tyrmored> yeah i know that much
<tyrmored> (no parens, that is)
<zendeavor> it's not necessarily a bashism, but the function keyword has
implications in other shells
<zendeavor> and, perhaps someday in the future, for bash as well
<tyrmored> hmm, so i should use this syntax even if the scripts are explicitly
bash?
<ffio> hi zendeavor :)
<zendeavor> you should use foo() { echo bar; }
<tyrmored> rightoh
<zendeavor> no surprising behaviour that way, ever
<tyrmored> makes sense
<zendeavor> it won't matter *much* but element of least surprise
Diffstat (limited to 'bash')
-rw-r--r-- | bash/bashrc.d/cd.bash | 3 | ||||
-rw-r--r-- | bash/bashrc.d/grep.bash | 2 | ||||
-rw-r--r-- | bash/bashrc.d/ls.bash | 2 | ||||
-rw-r--r-- | bash/bashrc.d/prompt.bash | 2 | ||||
-rw-r--r-- | bash/bashrc.d/tmux.bash | 2 |
5 files changed, 6 insertions, 5 deletions
diff --git a/bash/bashrc.d/cd.bash b/bash/bashrc.d/cd.bash index 79e610d8..35900b7f 100644 --- a/bash/bashrc.d/cd.bash +++ b/bash/bashrc.d/cd.bash @@ -1,6 +1,6 @@ # If given two arguments to cd, replace the first with the second in $PWD, # emulating a Zsh function that I often find useful; preserves options too -function cd { +__cd() { while getopts lPe opt do local opts="$opts -$opt" @@ -12,4 +12,5 @@ function cd { builtin cd $opts "$@" fi } +alias cd='__cd' diff --git a/bash/bashrc.d/grep.bash b/bash/bashrc.d/grep.bash index e5a568e1..ea75bd8e 100644 --- a/bash/bashrc.d/grep.bash +++ b/bash/bashrc.d/grep.bash @@ -1,5 +1,5 @@ # Function returns calculated options for grep -function __grepopts { +__grepopts() { local grepopts='-I' local grephelp=$(grep --help) echo $grephelp | grep -- --color &>/dev/null \ diff --git a/bash/bashrc.d/ls.bash b/bash/bashrc.d/ls.bash index 03150fea..5dd65b48 100644 --- a/bash/bashrc.d/ls.bash +++ b/bash/bashrc.d/ls.bash @@ -1,5 +1,5 @@ # Function returns calculated options for ls -function __lsopts { +__lsopts() { local lsopts= local lshelp=$(ls --help) echo $lshelp | grep -- --color &>/dev/null \ diff --git a/bash/bashrc.d/prompt.bash b/bash/bashrc.d/prompt.bash index 26f9f87a..69f9bf7a 100644 --- a/bash/bashrc.d/prompt.bash +++ b/bash/bashrc.d/prompt.bash @@ -1,5 +1,5 @@ # Frontend to controlling prompt -function prompt { +prompt() { local ret=$? local colors=$(tput colors 2>/dev/null) local color reset branch state url root diff --git a/bash/bashrc.d/tmux.bash b/bash/bashrc.d/tmux.bash index 8d5382e9..ee47e7fc 100644 --- a/bash/bashrc.d/tmux.bash +++ b/bash/bashrc.d/tmux.bash @@ -1,5 +1,5 @@ # Attach to existing tmux session rather than create a new one if possible -function tmux { +tmux() { if [[ -n "$@" ]]; then command tmux "$@" else |