Script started on Mon Nov 9 17:29:00 2026 Restored session: Wed Nov 4 18:45:46 EST 2026 macbook:Desktop> cat q21.txt "echo $$" tells us what? a. the process ID of the shell b. the number of arguments c. the last argument d. a list of all files in the current directory macbook:Desktop> (sleep 30; echo done 1) & [1] 42331 macbook:Desktop> (sleep 30; echo done 2) & [2] 42335 macbook:Desktop> echo done 3; wait; echo done 4 done 3 done 1 [1] - done ( sleep 30; echo done 1; ) done 2 [2] + done ( sleep 30; echo done 2; ) done 4 % macbook:Desktop> which vi /usr/bin/vi macbook:Desktop> echo $PATH /Users/mweeks/bin/:/Users/mweeks/programs/myutils:/Users/mweeks/programs:/Users/mweeks/.diversion/bin:/Users/mweeks/Library/Python/3.11/bin:/Users/mweeks/bin/:/Users/mweeks/programs/myutils:/Users/mweeks/programs:/Users/mweeks/.diversion/bin:/Users/mweeks/Library/Python/3.11/bin:/Library/Frameworks/Python.framework/Versions/3.11/bin:/Users/mweeks/.diversion/bin:/opt/homebrew/bin:/opt/homebrew/sbin:/opt/local/bin:/opt/local/sbin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin:/opt/X11/bin:/Library/Apple/usr/bin:/Library/TeX/texbin macbook:Desktop> cd macbook:~> vi vi macbook:~> chmod 700 vi macbook:~> ls -l vi -rwx------ 1 mweeks staff 32 Nov 9 17:57 vi macbook:~> ./vi This is not the real vi macbook:~> vi macbook:~> vi macbook:~> cd /usr/bin/ macbook:bin> ls -l vi lrwxr-xr-x 1 root wheel 3 Aug 16 2025 vi -> vim macbook:bin> cd macbook:~> cd bin macbook:bin> mv ../vi . macbook:bin> ./vi This is not the real vi macbook:bin> vi macbook:bin> echo $PATH /Users/mweeks/bin/:/Users/mweeks/programs/myutils:/Users/mweeks/programs:/Users/mweeks/.diversion/bin:/Users/mweeks/Library/Python/3.11/bin:/Users/mweeks/bin/:/Users/mweeks/programs/myutils:/Users/mweeks/programs:/Users/mweeks/.diversion/bin:/Users/mweeks/Library/Python/3.11/bin:/Library/Frameworks/Python.framework/Versions/3.11/bin:/Users/mweeks/.diversion/bin:/opt/homebrew/bin:/opt/homebrew/sbin:/opt/local/bin:/opt/local/sbin:/usr/local/bin:/System/Cryptexes/App/usr/bin:/usr/bin:/bin:/usr/sbin:/sbin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/local/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/bin:/var/run/com.apple.security.cryptexd/codex.system/bootstrap/usr/appleinternal/bin:/opt/X11/bin:/Library/Apple/usr/bin:/Library/TeX/texbin macbook:bin> pwd /Users/mweeks/bin macbook:bin> echo x=5 x=5 macbook:bin> eval `echo x=5` macbook:bin> echo $x 5 macbook:bin> eval "echo x=5" x=5 macbook:bin> eval 'echo x=5' x=5 macbook:bin> `pwd` zsh: permission denied: /Users/mweeks/bin macbook:bin> echo `pwd` /Users/mweeks/bin macbook:bin> cdd macbook:Desktop> cd csc3320_Fall2026/programs/unix_ch4 macbook:unix_ch4> grep shift * script3.csh:shift macbook:unix_ch4> cat script3.csh #!/bin/csh echo first argument is $1, all args are $* shift echo first argument is $1, all args are $* echo " " echo "Example:" echo "$ script3.csh a b c d" echo "first argument is a, all args are a b c d" echo "first argument is b, all args are b c d" macbook:unix_ch4> ./script3.csh hickory oak apple dateript2.bash* script2.csh* script3.csh* first argument is hickory, all args are hickory oak apple date first argument is oak, all args are oak apple date Example: $ script3.csh a b c d first argument is a, all args are a b c d first argument is b, all args are b c d macbook:unix_ch4> read v1 v2 date oak macbook:unix_ch4> echo $v1 date macbook:unix_ch4> echo $v2 oak macbook:unix_ch4> ls predef* zsh: no matches found: predef* macbook:unix_ch4> cd ../unix_ch5 macbook:unix_ch5> ls predef* predefined.sh macbook:unix_ch5> cat predefined.sh echo You passed $# parameters. echo These are: "$@" echo process ID of last background process = $! echo process ID of this shell = $$ notAcommand echo Last command returned with $? as the status. macbook:unix_ch5> ./predefined.sh hickory oak apple date You passed 4 parameters. These are: hickory oak apple date process ID of last background process = process ID of this shell = 43337 ./predefined.sh: line 5: notAcommand: command not found Last command returned with 127 as the status. macbook:unix_ch5> expr 2 \* 3 6 macbook:unix_ch5> test -e predefined.sh; echo $? 0 macbook:unix_ch5> test -e predefineddoesnotexist.sh;echo $? 1 macbook:unix_ch5> cat testfor.sh params=$@ for value in $params do echo param: $value done macbook:unix_ch5> ./test test_file_exists.sh* testcase2c.sh* testif.sh* test_file_exists2../testfor.sh hickory oak apple date param: hickory param: oak param: apple param: date macbook:unix_ch5> cat testif.sh echo "enter a word: " read v1 if [ -e $v1 ] then echo "A file by that name exists." else echo "No file by that name exists." fi macbook:unix_ch5> ./testif.sh enter a word: hickory No file by that name exists. macbook:unix_ch5> ./testif.sh enter a word: testfor.sh A file by that name exists. macbook:unix_ch5> exit Saving session... ...saving history...truncating history files... ...completed. Deleting expired sessions...none found. Script done on Mon Nov 9 18:45:41 2026 MacOS has an /etc/paths folder https://stackoverflow.com/questions/22465332/setting-path-environment-variable-in-macos-permanently