下面用一個簡單的shell程式要說明一下。
debian:~/learn/shell# cat phonebook
Alice Chebba 973-555-2015
Barbara Swingle 201-555-9257
Liz Stachiw 212-555-2298
Susan Goldberg 201-555-7776
Susan Topple 212-555-4932
Tony Iannino 973-555-1295
Stromboli Pizza 973-555-9478
debian:~/learn/shell#
debian:~/learn/shell# cat lu
# Look someone up in the phone book
grep "$1" phonebook
debian:~/learn/shell#
這是正確的lu程式,下面是運行結果。
debian:~/learn/shell# ./lu 'Susan T'
Susan Topple 212-555-4932
debian:~/learn/shell# ./lu Tony
Tony Iannino 973-555-1295
debian:~/learn/shell#
如果lu寫成①grep $1 phonebook或者②grep '$1' phonebook,就會出現下面的錯誤結果(為什嗎?)。
①的結果:
debian:~/learn/shell# ./lu Tony //這種情況結果正確
Tony Iannino 973-555-1295
debian:~/learn/shell# ./lu 'Susan T' //這種情況結果錯誤
grep: T: No such file or directory
phonebook:Susan Goldberg 201-555-7776
phonebook:Susan Topple 212-555-4932
debian:~/learn/shell#
②的結果:
debian:~/learn/shell# ./lu Tony //這種情況結果錯誤
debian:~/learn/shell# ./lu 'Susan T' //這種情況結果也錯誤
debian:~/learn/shell#