如何编写并执行一个Shell脚本文件?
[root@sunday-test shell-script]# cat HelloWorld.sh
#!/usr/bin/bash //是一个标记,告诉系统执行这个文件需要的解释器
#this line is a comment1 // “#” 号开头的行代表注释
echo "Hello World" //指令
要使脚本可执行:
chmod a+x HelloWorld.sh
然后,可以通过输入: ./HelloWorld.sh 来执行脚本。
执行脚本的方法有哪几种?其区别是什么?
1、使用bash命令执行 # 把脚本当做bash的调用来处理,所以,脚本不需要有执行权限就可以执行。只能在当前目录下执行脚本,不可以在别的目录下执行。
# bash HelloWord.sh
“.”号和source命令也都可以执行脚本,且不需要可执行权限
# . HelloWord.sh
# source HelloWord.sh
2、给脚本添加可执行权限,然后直接就可以执行了
# chmod a+x HelloWord.sh
# ./HelloWord.sh
Hello Word
列举出5个系统自带的环境变量,并说明他们都代表什么含义?
HISTCMD: 记录下一条命令在history命令中的编号
HISTFILE: 记录history命令记录文件的位置
HISTFILESIZE: 设置HISTFILE文件记录命令的行数
HISTSIZE: 设置命令缓冲区的大小
HOSTNAME: 设置主机名
HOSTTYPE: 展示主机的架构
linux系统内设有预定义变量和位置变量,说出以下都代表什么意义?
$1、$3、$#、$*、$@、$0、$?
$1 表示第一个位置参数
$3 表示第三个位置参数
$# 表示脚本参数的个数总和
$* 表示脚本的所有参数
$@ 表示脚本的所有参数
$0 代表脚本本身名字
$? 脚本或者命令返回值,正常退出的命令和脚本应该返回值为0,任何非0的返回值都表示命令未正确退出或未正常执行
自定义变量的时候,都有哪些需要注意(即变量命名规则)?
shel1中的变量必须以字母或者下划线开头,后面可以跟数字、字母和下划线,长度没有限制,区分大小写。
# 正确的变量命名
firstname
FIRSTNAME
_hellowor
ldbig_data
Fullname
Person01
# 错误的变量命名
51play #变量不能以数字开头
*badname #变量不能以特殊字符开头
PS1 #变量不能和Shell的预设变量名重名
for #变量不能使用Shell的关键字
变量赋值和取值
定义变量:变量名=变量值
注意点1:变量名和变量值之间用等号紧紧相连,之间没有任何空格
注意点2:当变量值中有空格时必须用引号括起,否则会出现错误,可以是双引号,也可以是单引号
我希望把从键盘输入的值做为—个变量的值,应该如何做?
read [-p "提示信息"] 变量名
如何调用一个变量的值?
echo $变量名称
双引号、单引号、反引号这三种引号有何不同的含义?
双引号中的字符除了“$”、“\”、反引号依然保留其特殊用途外,其余字符都作为普通字符处理。
单引号中的字符都作为普通字符处理
通配符*、?、分别代表什么含义?
*代表任意长度的字符串。例如:a*可以匹配以a开头的任意长度的字符串,但是不包括点号和斜线号。也就是说a*不能匹配abc.txt。
?:用于匹配任一单个字符。
[]︰代表匹配其中的任意一个字符,比如[abc]代表匹配a或则b或则c,[]中可以用“-”表明起止,比如[a-c]等同于[abc]。*和?在[]中则变成了普通字符,没有通配的功效。
如果我想同时创建file1、file2...file10个空文件,应该如何做比较快?
touch file{1..10}
shell中—般有哪四种算术运算方式?推荐使用哪种?
1:使用 expr外部程式
2:使用 $(( ))
3.使用 $[]
4:使用let命令
虽然Bash shell有四种算术运算方法,但并不是每一种都是跨平台的,建议使用expr。
前置自增和后置自增有何不同?
前置自增:先增加后赋值 后置自增:先赋值后增加
linux中的标准输入、标准输出及标准错误输出默认是什么?
标准输入为键盘, 标准输出和错误输出为显示器。