
bash Beginnings
|
213
This is a good way to make complex lines more readable.
The shell ignores lines filled with whitespace (spaces, tabs, empty lines). It also
ignores everything from a comment character (
#) to the end of the line. When bash
reads the second line of this script (
echo hello world), it treats the first word (echo)
as the command to run and the other words (
hello world) as its arguments. The echo
command just copies its arguments to its output. The third line runs another echo
command, but with different arguments.
To see what you’ve put in the file hello, you can print its contents to the screen:
admin@server1:~$ cat hello
#!/bin/bash
echo hello world
echo bonjour monde
Pathnames and Permissions
The hello file can be executed by running the bash command with a hello argument:
admin@server1:~$ bash hello
hello world
bonjour monde
admin@server1:~$
Now let’s try to run hello without its bash chaperon:
admin@server1:~$ hello
bash: hello: command not found
Why can’t bash find it? When you specify a command, Linux searches a list of direc-
tories called the path for a file of that name and runs the first one it finds. In this
case, hello was not in any of these directories. If you tell the system what directory
hello is in, it will run it. The pathname can be absolute (/home/admin/hello) or rela-
tive (./hello means the hello file in the current directory). We’ll describe how to spec-
ify the