In Bash—Pass Arguments From Function To Another

When I’m good about using and re-using functions in Bash I always end up passing arguments through from one function to another. For example:

function pie {
  open /Applications/Emacs.app --args --debug-init "$@"
}

function pienthm {
  EMACSNOTHEME=t pie --reverse-video "$@"
}

Horrible to admit but I keep forgetting the syntax even are taking copious notes on the GNU Bash manual.

BTW: hear, hear to including Bash-isms in every shell script!

(AppleScript+macOS) Maybe The Only Working Applescript For Toggling Grayscale And Inverting Colors On macOS Sierra In The World

2021-04-16: Here is one in JavaScript.

THANK YOU SILESKY

Toggle Grayscale

tell application "System Preferences"
  activate
  set the current pane to pane id "com.apple.preference.universalaccess"
  delay 1 # needs time to open universal access
  tell application "System Events" to tell process "System Preferences" to tell window "Accessibility"
    tell scroll area 2 to tell table 1 to tell row 6 #open display preferences
      select
    end tell
    click checkbox "Use grayscale"
  end tell
end tell

tell application "System Preferences" to quit

# Sierra: System Preferences -> Accessibility -> Display -> Use grayscale

Invert Colors

tell application "System Preferences"
  activate
  set the current pane to pane id "com.apple.preference.universalaccess"
  delay 1 # needs time to open universal access
  tell application "System Events" to tell process "System Preferences" to tell window "Accessibility"
    tell scroll area 2 to tell table 1 to tell row 6 #open display preferences
      select
    end tell
    click checkbox "Invert colors"
  end tell
end tell

tell application "System Preferences" to quit

# Sierra: System Preferences -> Accessibility -> Display -> Invert colors

Aliases

Run them from the command line. Maybe make your screen black and white at night or invert colors for screencasts or working in sunligh.

alias togglegrayscale=’osascript /Users/gcr/util/sspadtogglegrayscale.scpt’
alias invertcolors=’osascript /Users/gcr/util/sspadtogglecolors.scpt’

Find All Locations Of A Binary Using `type’ not `which’

I can’t find the git 2.10 binary so I run

which git

/usr/local/bin/git

Excellent, found it.

And then I check it’s version to verify I am looking at the right version

/usr/local/bin/git –version

git version 2.21.0

Oops that isn’t what I wanted.

There must be another git getting loaded earlier in the search path.

Here is how to find out where all copies of git live

type -a git

git is /usr/local/bin/git
git is /usr/local/bin/git
git is /usr/bin/git

Look for the right git at version 2.10

/usr/local/bin/git –version
/usr/bin/git –version

git version 2.21.0
git version 2.14.3 (Apple Git-98)

I want the second one.

That is how to track down the location of a binary file on macOS that appears multiple times in the search path.