Jawaban:
Anda dapat mengakses shakealat baris perintah karena ada dalam direktori yang tercantum dalam PATHvariabel lingkungan di lingkungan Anda.
Jika Anda ingin mengetahui lokasi yang tepat dari shakeexecutable Anda dapat mengetik:
which shake
Yang akan menampilkan daftar tempat pertama yang shakedapat dieksekusi ketika mencari semua direktori di PATHvariabel lingkungan.
Jika Anda ingin melihat semua tempat yang shakeada, Anda dapat mengetik:
which -a shake
Dan itu akan mendaftar semua tempat di mana perintah yang dipanggil shakedapat ditemukan. Saya tidak punya shakedi komputer saya, tapi di sini adalah contoh menggunakan bash. Kejadian pertama dari bashexecutable untuk saya:
IanCsiMac:~
> which bash
/usr/local/bin/bash
Dan semua tempat saya dapat menemukan bashexecutable di PATH:
IanCsiMac:~
> which -a bash
/usr/local/bin/bash
/usr/local/bin/bash
/bin/bash
Dan PATHvariabel saya terlihat seperti ini:
IanCsiMac:~
> perl -e 'print join("\n", split(/:/,$ENV{"PATH"}))'
/Users/ian/.gem/ruby/2.3.1/bin
/Users/ian/.rubies/ruby-2.3.1/lib/ruby/gems/2.3.0/bin
/Users/ian/.rubies/ruby-2.3.1/bin
/usr/local/sbin
/usr/local/bin
/Users/ian/google-cloud-sdk/bin
/usr/local/bin
/usr/bin
/bin
/usr/sbin
/sbin
/Applications/Server.app/Contents/ServerRoot/usr/bin
/Applications/Server.app/Contents/ServerRoot/usr/sbin
/usr/local/MacGPG2/bin
/usr/local/mysql/bin
/Users/ian/bin
/opt/nginx/sbin
/opt/local/bin
/opt/local/sbin
/Users/ian/Development/go/bin
Perintah Bash which shakememberi saya hasil berikut:
/usr/bin/shake
Dan konten shakefile dalam /usr/bin/berisi skrip seperti ini:
# set env var, NR_SHAKE_LOCATION if not set
if ${?NR_SHAKE_LOCATION} == 0 then
pushd `dirname $0` >& /dev/null
setenv NR_SHAKE_LOCATION /Applications/Shake
popd >& /dev/null
endif
# launch shake
exec ${NR_SHAKE_LOCATION}/shake.app/Contents/MacOS/shake $argv:q