什么是shell脚本,他是必须需要的么
一个shell脚本是一个文本文件,他包含一个或多个命令。作为系统管理员,我们经常需要使用一个或多个命令来完成一个任务,我们可以将这些命令添加到一个文本文件中来完成日常任务。
什么是默认登录shell,如何改变用户的登录shell
在linux系统中默认的登录shell是"/bin/bash",在创建用户是默认分配的。使用chsh命令可以改变默认的shell,示例如下:
chsh 用户名 -s <新shell>
chsh linux -s /bin/sh
在shell脚本中可以使用那些变量
- 系统定义变量
- 用户定义变量
系统变量是由系统自己创建的,这些变量通常有大写字母组成,可以通过’set’查看。
用户定义变量使用系统用户定义和生成的,可以用echo $<变量名>来查看。
如何将标准输出和错误输出同时定向到同一个文件
- 方法一
2>&1
ls /usr/share/doc > out.txt 2>&1
- 方法二
&>
ls /usr/share/doc &> out.txt
shell脚本中if如何嵌套
语法如下:
if [条件]
then
命令1
......
else if [条件]
then
命令1
......
else
命令1
......
fi
fi
shell脚本中"$?"标记的用途是什么
在写脚本时,如果想要检查前一个执行命令是否执行成功,在if条件中使用"$?"可以来检查前一命令的执行是否成功。
root@localhost:~# ls /usr/bin/shar
/usr/bin/shar
root@localhost:~# echo $?
0
如果结束状态是0,说明前一个命令执行成功
root@localhost:~# ls /usr/bin/share
ls: cannot access /usr/bin/share: No such file or directory
root@localhost:~# echo $?
2
如果结束状态不为0,说明前一个命令执行失败
在shell脚本中比较两个数字的大小
#!/bin/bash
x=10
y=20
if [$x -gt $y]
then
echo "x is greater than y"
else
echo "y is greater than x"
fi
shell脚本中break命令的作用
break命令一个简单的用途是退出执行中的循环。我们可以在while和until循环中使用break命令跳出循环。
shell脚本中continue命令的作用
continue命令不同于break命令,他只跳出当前循环的迭代,而不是整个循环。continue命令很多时候是很有用的,例如发生错误,但我们依然希望继续执行大循环的时候
shell脚本中case用法
case 变量 in
值1)
命令
......
值2)
命令
......
;;
esac
shell脚本中while用法
while (条件)
do
命令
......
done
如何使脚本可执行
chmod a+x myscript.sh
shell脚本中for循环用法
for 变量名 in 循环列表(值)
do
命令
......
done
如何调试shell脚本
使用’-x’参数sh -x myscript.sh。另一种方法是’-nv’参数sh -nv myscropt.sh。
shell脚本中如何比较字符串
test命令可以用来比较字符创。测试命令会通过比较字符串中的每一个字符来比较。
Bourne shell(bash) 中有哪些特殊的变量
内置变量 | 含义 |
---|---|
$0 | 命令行中脚本的名字 |
$1 | 第一个命令行参数 |
$2 | 第二个命令行参数 |
$3 | 第三个命令行参数 |
$4 | 第四个命令行参数 |
… | … |
$9 | 第九个命令行参数 |
$# | 命令行参数的数量 |
$* | 所有命令行参数,以空格隔开 |
在shell脚本中如何测试文件
test | 用法 |
---|---|
-d 文件名 | 如果文件存在并且是目录,返回true |
-e 文件名 | 如果文件存在,返回ture |
-f 文件名 | 如果文件存在并且是普通文件,返回true |
-r 文件名 | 如果文件存在并可读,返回true |
-s 文件名 | 如果文件存在并且不为空,返回true |
-x 文件名 | 如果文件存在并可执行,返回true |
-w 文件名 | 如果文件存在并可写,返回true |
shell脚本中如何写入注释
每一行开头以’#'开头,例如:
#!/bin/bash
# This is a command
echo “I am logged in as $USER”
如何让 shell脚本得到来自终端的输入
read命令可以读取来自终端(使用键盘)的数据。read命令得到用户的输入并置于你给出的变量中。例子如下:
# vi /tmp/test.sh
#!/bin/bash
echo ‘Please enter your name’
read name
echo “My Name is $name”
# ./test.sh
Please enter your name
Linuxceshi
My Name is Linuxceshi
如何取消变量或取消变量赋值
unset <变量名>
如何执行算术运算
- 使用expr命令
expr 5 + 2
- 用一个美元符号和方括号($[ 表达式 ])例如:
test=$[16 + 4] ; test=$[16 + 4]
do-while语句的基本格式
do
{
命令
} while (条件)
在shell脚本如何定义函数
$ diskusage () { df -h ; }
译注:下面是我给的shell函数语法,原文没有
[ function ] 函数名 [()]
{
命令;
[return int;]
}