Undefined variable script

来自Shiyin's note
Shen讨论 | 贡献2013年12月18日 (三) 11:14的版本
(差异) ←上一版本 | 最后版本 (差异) | 下一版本→ (差异)
跳到导航 跳到搜索

first file (excutable):

echo 'this is tete'
echo $hi
echo 'OK!'
exit 

run it and it prints:

this is tete
OK!

second file (excutable):

#
echo 'this is tete'
echo $hi
echo 'OK!'
exit 

run it and it prints:

this is tete
hi: Undefined variable. 

Because 1st file have no "#"/"#!/bin/sh"/"#!/bin/csh" on the first line, in most of the linux distributions, the default interpreter of a script is /bin/sh if it is not specified, and /bin/sh DOES NOT think an undefined variable is a problem! "#" will call csh, and print the problem.