# Bash

Bash is a classic and should always be understood.  After all, it  was  the first shell that you used so there's a bit of nostalgia surrounding it. 


- `touch` creates the file named `zk_sync` and `chmod +x` makes the file an executable file, but we still need to say what shell will execute this file, and what exactly are the commands to be executed.
- [ bash command](https://discussions.apple.com/thread/252176464) for Big Sur if you ever decide to upgrade
- the  oh-my-zsh version  of bash  is now regularly maintained through a git repo called [Bash-It](https://github.com/Bash-it/bash-it)
- check the file size of something in your directory by ```wc -c /Users/shwethajayaraj/qisket/file```
	- you can further turn it into a bash variable by doing: 
	-  ```myfilesize=$(wc -c "/etc/passwd" | awk '{print $1}')
            printf "%d\n" $myfilesize
            echo "$myfilesize"```



### Shell Scripting Tips: 
- Safe shell scripting practices --> Make sure to use " " ! 
	- example :  `cat /Applications/Android Studio.app/Contents` will give you an error 
	- but `cat "/Applications/Android Studio.app/Contents"` will work! 
- Export paths as an Env variable 
	- example: `export AS_HOME="/Applications/Android Studio.app/Contents"`
-  Dealing with Path with Spaces in it: 
	- use either back slashes or quotation marks not both 
	- example:   
```shell 
export PATH=/Applications/Sublime\ Text\ 2.app/Contents/SharedSupport/bin/subl:$PATH
```
or 
```shell 
export PATH="/Applications/Sublime Text 2.app/Contents/SharedSupport/bin/subl:$PATH"
```

Not both.
Try out the script and see if `the file or directory not found` error comes up.        



=