Advertisement
Guest User

Untitled

a guest
Oct 22nd, 2016
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.32 KB | None | 0 0
  1. ###一、Shell脚本是什么、它是必需的吗?
  2. 一个Shell脚本是一个文本文件,包含一个或多个命令。作为系统管理员,我们经常需要使用多个命令来完成一项任务,我们可以添加这些所有命令在一个文本文件(Shell脚本)来完成这些日常工作任务。
  3.  
  4. ###二、什么是默认登录shell,如何改变指定用户的登录shell?
  5. 在Linux操作系统,“/bin/bash”是默认登录shell,是在创建用户时分配的。使用chsh命令可以改变默认的shell。示例如下所示:
  6. `chsh <username> -s <shell>`
  7.  
  8. ###三、可以在shell脚本中使用哪些类型的变量?
  9. 可以定义如下两种类型的变量
  10. ```
  11. 系统定义变量
  12. 用户定义变量
  13. ```
  14.  
  15. ###四、如何将标准输出和错误输出同时重定向到同一位置?
  16. 可以有两种实现方法:
  17. ```
  18. 2>&1
  19. &>
  20. ```
  21.  
  22. ###五、shell脚本中”if”语法如何嵌套?
  23. 示例如下:
  24. ```bash
  25. if [ 条件 ] then;
  26. command ...
  27. else
  28. if [ 条件 ] then;
  29. command...
  30. else
  31. command...
  32. fi
  33. fi
  34. ```
  35.  
  36. ###六、shell脚本中”$?”标记的用途是什么?
  37. “$?”可以来检查前一命令的结束状态,通常”0”表示成功,”1-255”表示运行失败
  38.  
  39. ###七、在shell脚本中如何比较两个数字 ?
  40. 可以使用-gt 、 -lt`` 、-ne、-eq`来进行比较。
  41.  
  42. ###八、shell脚本中break命令的作用 ?
  43. break命令一个简单的用途是退出执行中的循环。我们可以在while和until循环中使用break命令跳出循环
  44.  
  45. ###九、shell脚本中continue命令的作用 ?
  46. continue命令不同于break命令,它只跳出当前循环的迭代,而不是整个循环。continue命令很多时候是很有用的,例如错误发生,但我们依然希望
  47.  
  48. ###十、如何执行一个脚本?
  49. 通常赋予脚本执行权限或使用bash命令调用,如下所示:
  50. ```
  51. chmod +x script.sh
  52. bash script.sh
  53. ```
  54.  
  55. ###十一、脚本的基本格式?
  56. 如下格式:
  57. ```
  58. #!/bin/bash
  59. #
  60. #auther: magedu
  61. #description:This is scripts
  62.  
  63. 脚本主体
  64. ```
  65.  
  66. ###十二、如何调试shell脚本?
  67. 通常使用bash 命令中 -x参数来执行脚本,如下格式:
  68. ```
  69. bash -x script.sh
  70. ```
  71.  
  72. ###十三、shell脚本如何比较字符串?
  73. 如下格式:
  74. ```
  75. #!/bin/bash
  76. A="mageu"
  77. B="magedu"
  78.  
  79. [[ "$A" == "$B" ]] && echo "字符串相同" || echo "字符串不同"
  80. ```
  81.  
  82. ###十四、bash中有哪些特殊变量?
  83. ```
  84. $0 : 命令行中的脚本名字
  85. $1..$9 : 脚本可接受的参数个数
  86. $# : 命令行参数的数量
  87. $* : 所有命令参数,转换为一个字符串
  88. $@ : 所有命令参数,转换为一个字符串
  89. ```
  90.  
  91. ###十五、脚本中如何测试文件?
  92. ```
  93. -d : 文件是否存在且是目录
  94. -e : 文件是否存在
  95. -f : 文件是否存在且是普通文件
  96. -r : 文件存在且是否可读
  97. -s : 文件存在且不为空
  98. -w : 文件存在且可写
  99. -x : 文件存在且可执行
  100. ```
  101.  
  102. 十六、脚本中如何得到来自用户终端的输入值?
  103. 如下示例:
  104. ```
  105. #!/bin/bash
  106. #
  107. #auther: mage team
  108. #
  109. read -p "Please Enter Your Chooice: " STR
  110. echo "${STR}
  111. ```
  112.  
  113. ###十七、如何撤消变量或取消变量的值?
  114. ```
  115. unset VAR
  116. VAR=
  117. ```
  118.  
  119. ###十八、bash中如何进行算术运算?
  120. 有如下三种方法:
  121. ```
  122. let i++
  123. expr 1 + 2
  124. $[ 2 + 3]
  125. $(($num1 + $num2))
  126. ```
  127.  
  128. ###十九、如何定义一个函数?
  129. 方法一:
  130. ```
  131. func_name() {
  132. func body
  133. ...
  134. }
  135. ```
  136. 方法二:
  137. ```
  138. function func_name(){
  139. func body
  140. ...
  141. }
  142. ```
  143.  
  144. ###二十、如何在shell脚本中使用BC计算器?
  145. ```
  146. VAR=$(echo "options;expression" | bc)
  147. ```
  148.  
  149. ###二十一、如何查看所有的非打印字符?
  150. 如下操作步骤
  151. ```
  152. 使用vim工具打开文本;
  153. 使用ESC + : ,进入命令模式;
  154. 输入set list
  155. ```
  156.  
  157. ###二十二、如何向脚本传递一个信号?
  158. 使用trap命令来获取,如下格式:
  159. ```
  160. #!/bin/bash
  161. # auther: mage team
  162. trap 'echo "quit";exit1' INT
  163. ```
  164.  
  165. ###二十三、如何定义一个数组?
  166. 有如下方式:
  167. ```
  168. declare -a NAME : 申明一个索引数组
  169. declare -A NAME : 申明一个关联数组
  170. ```
  171.  
  172. ###二十四、如何计算一个数组的元素个数?
  173. 可以使用如下方式来引用:
  174. ```
  175. ${#ARRAY_NAME[*]}
  176. ${#ARRAY_NAME[@]}
  177. ```
  178. 可以在脚本中计算
  179. ```
  180. #!/bin/bash
  181. # auther : mage team
  182. #
  183. file_list=(`ls /www/log/access_log/`)
  184. NUM= $[ ${#file_list[*]} - 1 ]
  185. echo "$NUM"
  186. ```
  187.  
  188. ###二十五、如何引用一个变量?
  189. 有如下两种方式:
  190. ```
  191. $VAR_NAME
  192. ${VAR_NAME}
  193. ```
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement