<commit_before>---
author: 小莫
date: 2016-12-20
title: 常用shell脚本.
tags:
- linux
category: linux
permalink: NormalShell
---
这篇文章主要介绍了5个实用的shell脚本面试题和答案,给出的脚本堪称编码规范，麻雀虽小，异常处理，友好提示，一应俱全，值得学习,需要的朋友可以参考下
<!-- more -->


### 1. 个人信息
写一个shell脚本来得到当前的日期，时间，用户名和当前工作目录。
答案 : 输出用户名，当前日期和时间，以及当前工作目录的命令就是
$LOGNAME，‘date’，‘who i am’ 和 ’pwd‘。
![question1](https://image.xiaomo.info/android/question1.png)
样例输出
注意：带$的环境变量在赋值的时候不需要反引号

![question_answer](https://image.xiaomo.info/android/question_answer.png)
复制代码

### 2. 计算
写一个shell脚本，进行两个数字的相加，如果没有输入参数就输出错误信息和一行使用说明
```
$#  参数个数
-ne 不等于   !=
数值比较用字数        字符串比较用符号
-ne   不等于    !=
-lt   小于          <
-gt  大于          >
-le  小于等于    <=
-ge  大于等于   >=
-eq  等于          ==
```

特殊变量，不用加反引号   
比如 echo $0，意思是输出当前文件名   
![sum](https://image.xiaomo.info/android/sum.png)

给他添加可执行权限，并且执行。    
复制代码代码如下:   
>chmod 755 two-numbers.sh   
>chmod +x tiaojian.sh   

情形一: 未输入两个数字作为命令行参数运行脚本，你将得到下面的输出。
样例输出
![count](https://image.xiaomo.info/android/count.png)

因此，上述shell脚本满足了问题的要求。  
 
### 3.反序   
你需要打印一个给定的数字的反序，如输入10572，输出27501，如果没有输入数据，应该抛出错误和使用脚本说明。在此之前，告诉我你需要在这里使用的算法。

算法

1.输入的数字为n 
2.赋值 rev=0, sd=0 (反向和单个数字设置为0)           
3.n % 10, 将得到最左边的数字          <commit_msg>shell<commit_after>---
author: 小莫
date: 2016-12-20
title: 常用shell脚本.
tags:
- linux
category: linux
permalink: NormalShell
---
这篇文章主要介绍了5个实用的shell脚本面试题和答案,给出的脚本堪称编码规范，麻雀虽小，异常处理，友好提示，一应俱全，值得学习,需要的朋友可以参考下
<!-- more -->


### 1. 个人信息
写一个shell脚本来得到当前的日期，时间，用户名和当前工作目录。
答案 : 输出用户名，当前日期和时间，以及当前工作目录的命令就是
$LOGNAME，‘date’，‘who i am’ 和 ’pwd‘。
![question1](https://image.xiaomo.info/linux/question1.png)
样例输出
注意：带$的环境变量在赋值的时候不需要反引号

![question_answer](https://image.xiaomo.info/linux/question_answer.png)
复制代码

### 2. 计算
写一个shell脚本，进行两个数字的相加，如果没有输入参数就输出错误信息和一行使用说明
```
$#  参数个数
-ne 不等于   !=
数值比较用字数        字符串比较用符号
-ne   不等于    !=
-lt   小于          <
-gt  大于          >
-le  小于等于    <=
-ge  大于等于   >=
-eq  等于          ==
```

特殊变量，不用加反引号   
比如 echo $0，意思是输出当前文件名   
![sum](https://image.xiaomo.info/linux/sum.png)

给他添加可执行权限，并且执行。    
复制代码代码如下:   
>chmod 755 two-numbers.sh   
>chmod +x tiaojian.sh   

情形一: 未输入两个数字作为命令行参数运行脚本，你将得到下面的输出。
样例输出
![count](https://image.xiaomo.info/linux/count.png)

因此，上述shell脚本满足了问题的要求。  
 
### 3.反序   
你需要打印一个给定的数字的反序，如输入10572，输出27501，如果没有输入数据，应该抛出错误和使用脚本说明。在此之前，告诉我你需要在这里使用的算法。

算法

1.输入的数字为n 
2.赋值 rev=0, sd=0 (反向和单个数字设置为0)           
3.n % 10, 将得到最左边的数字          
{'fraction_non_alphanumeric': 0.1489539748953975, 'fraction_numerical': 0.0301255230125523, 'mean_word_length': 3.4859287054409007, 'pattern_counts': {'":': 0, '<': 9, '<?xml version=': 0, '>': 13, 'https://': 8, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '3739646', 'n_tokens_mistral': 1605, 'n_tokens_neox': 1708, 'n_words': 158}