Shell基础知识(二)
对于一个shell脚本来说,第一行是 "#!/bin/bash",这条命令中的 "#!" 告诉系统该用哪一款解释器来对该脚本进行解释,后面的"/bin/bash"用来指定解释器的具体路径
第一个shell脚本
>>
#!/bin/bash
echo "What is your name?" # 除了第一行的#符号,其他行的#号表示注释
read PERSON # read用来从标准输入输出文件进行读取用户输入
echo "Hello, $PERSON!" # 变量前面需要加上$符号
<<
执行bash文件:
在Linux下,首先给文件可执行权限chmod +x ./filename.sh,然后直接执行./filename.sh
在Mac下,直接使用bash ./filename.sh即可
如果不想更改文件的权限,也可以直接通过点号"."执行。
例如:. filename.sh
还可以通过source命令执行脚本
例如:source filename.sh
shell的变量
在Bash shell中,每一个变量的值都是字符串,无论在给变量赋值的时候是否使用引号,值都会以字符串的形式存储。
>>
variable=value
variable='value'
variable="value"
<<
如果value中不包含任何空白,那么可以不带引号。否则,必须使用引号。单双引号是有区别的。
Tip:赋值号的左右两端一定不能有空格!!
#!/bin/bash
name='默存'
echo ${name}
echo "${name} 是个好同志!"
单双引号的区别
#!/bin/bash
name="默存"
name1='真${name}'
name2="假${name}"
echo ${name1}
echo ${name2}
输出
>>
真${name}
假默存
<<
带上单引号,不管是不是变量都会原样输出。双引号可以将变量进行解析。
将命令返回的结果赋值给变量
有两种方式可以将命令返回的结果给变量赋值,分别是使用$(命令语句)或者``。如下例:
#!/bin/bash
bash_code=$(cat first.sh)
echo ${bash_code}
bash_code2=`cat first.sh`
echo ${bash_code2}
只读变量
>> readonly variable_name
删除变量
>> unset variable_name