非常好的12道shell命令经典面试问题

2019-09-23 08:59:09于海丽

[ $a -gt 12 ]

41. 如何检查字符串是否以字母"abc" 开头 ?
[[ $string == abc* ]]

42. [[ $string == abc* ]] 和 [[ $string == "abc*" ]] 有什么区别
[[ $string == abc* ]] - 检查字符串是否以字母 abc 开头
[[ $string == "abc" ]] - 检查字符串是否完全等于 abc

43. 如何列出以 ab 或 xy 开头的用户名 ?
egrep "^ab|^xy" /etc/passwd|cut-d: -f1

44. bash 中 $! 表示什么意思 ?
后台最近执行命令的 PID.

45. $? 表示什么意思 ?
前台最近命令的结束状态。

46. 如何输出当前 shell 的 PID ?
echo $$

47. $* 和 $@ 有什么区别*
$* - 以一个字符串形式输出所有传递到脚本的参数
$@ - 以 $IFS 为分隔符列出所有传递到脚本中的参数

48. 如何在 bash 中定义数组 ?
array=("Hi" "my""name" "is")

49. 如何打印数组的第一个元素 ?
echo ${array[0]}

50. 如何打印数组的所有元素 ?
echo ${array[@]}

51. 如何输出所有数组索引 ?
echo ${!array[@]}

52. shell 脚本如何获取输入的值 ?
a) 通过参数
./script param1 param2
b) 通过 read 命令
read -p "Destination backup Server :" desthost