用vi建立一个文件mysh,把上面所用到的echo$name$is$class"的学生"命令写到文件mysh中,给予mysh文件执行的权限,然后运行mysh,看是否显示出“xxx是网络2211的学生”,如果没有显示出来,你应该怎么做让它能够显示?
时间: 2024-10-20 21:08:41 浏览: 36
首先,我们需要分步操作:
1. **创建文件**:在vi编辑器中创建一个名为"mysh"的文件,输入以下内容,假设"name"和"class"已经确定为"xxx"和"2211":
```bash
echo $name "是" $class "的学生"
```
按`i`键进入插入模式,输入上述内容,然后按`Esc`键退回到命令模式。
2. **保存并关闭**:输入`:w`保存,`:q`或`:q!`退出vi。如果你在命令模式下没有看到":w"选项,可能是第一次保存,可以直接输入`:wq`。
3. **给予执行权限**:
```bash
chmod +x mysh
```
这将使文件获得可执行权限。
4. **运行文件**:
```
./mysh
```
运行这个文件,看看它是否会输出"xxx是网络2211的学生"。
如果没显示,这里有一些建议检查:
- **检查环境变量**:确认$name和$class是否设置为正确的值,比如在.bashrc或其他初始化文件中是否有正确的赋值。
- **语法错误**:确保echo命令中的字符串拼接部分无误,没有遗漏空格或多余字符。
- **权限问题**:确认运行该脚本的用户有执行权限,或者尝试sudo来运行。
相关问题
编写程序mysh.c,在其主函数中读取“命令字符串”(由第二个参数开始的所有命令行参数构成),在程序中创建一个子进程,然后在子进程中调用exec执行该命令字符串。如:用户输入“mysh ls -l”,则在子进程中执行“ls -l命令”。最后,父进程等待子进程执行完毕后以子进程的退出状态退出。
好的,根据您的要求,我来给您编写一个符合要求的mysh.c程序。
```c
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/wait.h>
int main(int argc, char *argv[]) {
pid_t pid;
int status;
if (argc < 2) {
fprintf(stderr, "Usage: %s command [args ...]\n", argv[0]);
exit(1);
}
pid = fork();
if (pid < 0) {
perror("fork");
exit(1);
} else if (pid == 0) { // child process
if (execvp(argv[1], &argv[1]) < 0) {
perror("execvp");
exit(1);
}
} else { // parent process
if (waitpid(pid, &status, 0) < 0) {
perror("waitpid");
exit(1);
}
if (WIFEXITED(status)) {
printf("Child process exited with status %d\n", WEXITSTATUS(status));
}
}
return 0;
}
```
这个程序通过 `fork` 创建了一个子进程,然后在子进程中调用 `execvp` 执行命令字符串。在父进程中,使用 `waitpid` 等待子进程执行完毕,并获取子进程的退出状态。最后,将子进程的退出状态输出到标准输出。
import matplotlib.pyplot as plt import jieba import wordcloud py = plt.imread('E:/shixun/girl.jpg') #读取预先准备的词云形状图片 f = open('E:/shixun/text.txt', encoding='utf-8') #打开预先准备的词云图文本文件 txt = f.read() #读取图文本文件中的内容#对读取到的文本内容进行分词 txt_list = jieba.lcut(txt) #将分词列表转成字符串,分隔符为空格 string = ''.join(txt_list) #词云图设置 wc = wordcloud.WordCloud( width=1000, height=700, background_color='white', font_path='mysh.ttc', #词云图中的文字字体 mask=py, #所使用的的词云图片 scale=15, stopwords={'的', '了'} #停用词,即不希望出现在词云图中的词 ) #给词云输入文字 wc.generate(string)报错Only supported for TrueType fonts怎么修改
这个错误是因为你使用了一个不支持的字体文件。你需要将字体文件路径改为一个支持的 TrueType 字体文件。例如,你可以使用 Windows 系统自带的 "simhei.ttf" 字体,将字体文件路径改为 "C:/Windows/Fonts/simhei.ttf"。修改的代码如下:
```python
import matplotlib.pyplot as plt
import jieba
import wordcloud
py = plt.imread('E:/shixun/girl.jpg') #读取预先准备的词云形状图片
f = open('E:/shixun/text.txt', encoding='utf-8') #打开预先准备的词云图文本文件
txt = f.read() #读取图文本文件中的内容
#对读取到的文本内容进行分词
txt_list = jieba.lcut(txt)
#将分词列表转成字符串,分隔符为空格
string = ''.join(txt_list)
#词云图设置
wc = wordcloud.WordCloud(
width=1000,
height=700,
background_color='white',
font_path='C:/Windows/Fonts/simhei.ttf', #改为一个支持的 TrueType 字体文件
mask=py, #所使用的的词云图片
scale=15,
stopwords={'的', '了'} #停用词,即不希望出现在词云图中的词
)
#给词云输入文字
wc.generate(string)
```
阅读全文
相关推荐














