Linux Shell 脚本
一、 在终端显示输出
- 命令都是在终端会话中输入并执行的。打开终端时会出现一个提示符。通常展示如下:
username@hostname$ 或者也可以配置成root@hostname #,或者简单地显示为$或#。 $表示普通用户,#表示管理员用户root。root是Linux系统中权限最高的用户。 #!/bin/bash
脚本中只有第一行来定义解释该脚本所使用的解 释器。- 脚本的执行方式有两种。(1)将脚本名作为命令行参数:
bash test.sh
(2)授予脚本执行权限,将其变为可执行文件:chmod 755 test.sh ./test.sh.
- (1)使用chmod命令赋予脚本可执行权限:
$ chmod a+x test.sh
(2)该命令使得所有用户可以按照下列方式执行该脚本:$ ./test.sh #./表示当前目录
或者$ /home/path/test.sh #使用脚本的完整路径
- shell使用分号或换行符来分隔 单个命令或命令序列。比如:
$ test1 ; test2这等同于:$ test1 $ test2
- echo是用于终端打印的最基本命令。默认情况下,echo在每次调用后会添加一个换行符:
$ echo "Welcome to Bash"
结果为 Welcome to Bash 不实用双引号也可以得出相同结果$ echo Welcome to Bash
或者单引号$ echo 'text in quotes'
- 如果需要打印像!这样的特殊字符,那就不要将其放入双引号中,而是使用单引号,或是在 特殊字符之前加上一个反斜线():
二、 使用变量与环境变量
使用大写字母命名环境变量,使用驼峰命名法或小写字母命名其他变量。可以使用env或printenv命令查看当前shell中所定义的全部环境变量
- 要查看其他进程的环境变量,可以使用如下命令:
cat /proc/$PID/environ
其中,PID是相关进程的进程ID - 假设有一个叫作gedit的应用程序正在运行。我们可以使用pgrep命令获得gedit的进程ID:
$ pgrep gedit
12500那么,你就可以执行以下命令来查看与该进程相关的环境变量:$ cat /proc/12501/environ
- 要想生成一份易读的报表,可以将cat命令的输出通过管道传给tr,将其中的\0替换成\n:
$ cat /proc/12501/environ | tr '\0' '\n'
- 可以使用等号操作符为变量赋值:
#!/bin/bash
#文件名:variables.sh
fruit=apple
count=5
echo "We have $count ${fruit}(s)"
输出如下:
We have 5 apple(s)
5.获得字符串的长度length=${#var}
$ var=12345678901234567890
$ echo ${#var}
20