shel面试题
持续记录一些面试题
1、变量
选择C
单引号不识别特殊变量
双引号识别特殊变量
sh bash会开启子shell 不保留当前shell变量
source 或者./ 是在当前shell环境加载脚本 保留shell变量
利用pstree查看shell的父进程和子进程
yum -y install psmisc
2、特殊变量
$# 表示传递给函数或脚本的总个数
$* 和 $@ 表示传递给函数或脚本的所有参数
$* 和 $@ 的区别是什么?
$*把所有参数当做一个整体
$@把所有参数当做独立的数据体
例子:
[root@mylinux ~]# cat a.sh
#! /bin/bash
echo "演示 \\"\\$*\\" "
for var in "$*"
do
echo "$var"
done
echo "演示 \\"\\$@\\" "
for var in "$@"
do
echo "$var"
done
[root@mylinux ~]# bash a.sh 1 2 3 4 5 6
演示 "$*"
1 2 3 4 5
演示 "$@"
1
2
3
4
5