Linux shell脚本编程

<shell脚本-变量>

笔记

欲速则不达,建议先完成 的任务!

继续学习

通关时间从学习第1个课程开始计时

5天内通关,可获得赏金50元

开始学习
该课程需要登录后才能观看
3400 位同学正在学习! 查看详情

济南毛瑞彬

1

回答

shell脚本read语句如果输入三个字符串 ,想让第一个字符串有空格怎么办?

韩hyr回复:

输入的时候人为的,或者自己赋值追加一个。和C语言变量来回折腾一样的

我君

1

回答

对语句空格的问题

韩hyr回复:

是的呀,具体的空格使用规则需要详细的学习shell脚本才行,咱们只是写简答代码的话,记住几种常见的规则就行了。

MAKERU739634284

1

回答

shell中的for语句

小灰灰回复:

在shell脚本里,for循环里的固定用法,你说的$I -lt 5是在判断中使用的,习惯性用法,注意培养编码习惯,继续加油。

MAKERU493594857

1

回答

#!/bin/bash

吴老师回复:

自己写的脚本语句 需要 shell 解析器 一句一句的 解析执行。  #!/bin/bash 是指该脚本语句使用  /bin/bash 来解析执行。     shell 的解析器还有很多  比如  sh  ksh 等等   这里 第一行指定的是 使用 bash 

风光无限好

1

回答

什么是字符设备文件?

吴老师回复:

<...code...> 查看全部

可以手动使用mknod命令创建如下, 或者通过编写字符设备驱动来自动有系统创建, 学到驱动初级的时候会讲到的 。

mknod  /dev/xxx   c    200 0


收起

盼悦潇悦

2

回答

为什么执行的时候我写了那个命令,却提示说command not found,这是怎么回事呢?

吴老师回复:

<...code...> 查看全部

min 后面的 =号 两边不能有 空格。  shell中的赋值语句 的等会两边不能有空格。  我该过的这个代码还有别的错误, 你可以自己先认真看一下 

#!/bin/bash 
min=0 
while [ $min -lt 5 ] 
do 
    min=`expr $min + 1 ` 
    echo -n "please input score:" 
    read S 
    G=`expr $S / 10 ` 
    case $G in 9|10) 
    echo "$S A" ;; 6|7|8) 
    echo "$S B" ;; *) 
    echo "$S C" ;; 
    esac 
done


收起

yyang

1

回答

在shell中,文件名本身不算在命令行参数里,但为什么打印$0时,打印的时文件名本身?

小灰灰回复:

linux中shell变量$#,$@,$0,$1,$2的含义解释: 
变量说明: 
$$ 
Shell本身的PID(ProcessID) 
$! 
Shell最后运行的后台Process的PID 
$? 
最后运行的命令的结束代码(返回值) 
$- 
使用Set命令设定的Flag一览 
$* 
所有参数列表。如"$*"用「"」括起来的情况、以"$1 $2 … $n"的形式输出所有参数。 
$@ 
所有参数列表。如"$@"用「"」括起来的情况、以"$1" "$2" … "$n" 的形式输出所有参数。 
$# 
添加到Shell的参数个数 
$0 
Shell本身的文件名 
$1~$n 
添加到Shell的各参数值。$1是第1参数、$2是第2参数…。 

shell当中的位置变量的一些规定,$#  $*,不包含$0,$0有自己的含义,继续加油

王强

1

回答

什么是普通文件

杨老师回复:

文件类型有七种 b c d - l s p,用命令ls -l查看文件详细信息,看到的第一个字符是‘-’的文件就是普通文件。

八臂天

1

回答

不同函数调用方式的函数体的差异

杨老师回复:

echo是打印,我们这个打印根据自己需要来就可以了。

苍岚幻象

1

回答

为什么输入到a12,然后输出只有到a10,老师您能解释下输入数据的流向吗?

小灰灰回复:

这个问题可以在群内直接得到解决,这样无法看出题*是什么,继续加油

打卡怪

1

回答

不加#!/bin/bash

吴老师回复:

所有的shell 脚本的 第一行都需要写上 

#!/bin/bash


打卡怪

2

回答

test测试语句

小灰灰回复:

您能具体点吗?这个无法看出您问的问题,群内每天有值班老师,这个问题的话在群内很快就能得到解决,继续加油

lxllsb

1

回答

这节课从头到尾声音品质极其差!

杨老师回复:

这个课程已经在重新录制呢,现在已经录制了一部分了,上线之后,可以再复习一遍哦。

沧海一声笑

1

回答

vi文件编辑器的问题

韩hyr回复:

这个是配置了vim后的效果,可以百度一下配置vim,有好多大牛的配置方案。

以柳怀蝶

1

回答

while和for有什么区别?

韩hyr回复:

while的参数是判断语句,for的参数是三个,功能分别不同,中间的参数才是用于判断的语句

从芯开始

1

回答

shell脚本

杨老师回复:

需要建立共享文件夹来进行linux和Windows文件共享。具体点击步骤 虚拟机->设置->选项->共享文件夹,然后一路next设置就好了,设置好的共享目录在linux下的/mnt/hgfs下。(设置共享目录的前提是vm tools没有问题)

嵌入式攻城狮

1

回答

$?的值什么时候是0或1,什么时候是上一个命令的结果

杨老师回复:

$?  :前一语句的执行结果。在shell中 0表示正常执行(真),1表示非正常(假)

阿布豆豆

1

回答

辅助输入

杨老师回复:

我们用的都是标准输入,自己什么也不需要操作,您这里是遇倒了什么问题,可以联系辅导老师,发个图片看下问题,根据具体问题来找原因比较准确哈。

猪圈里养鸡

1

回答

for报错

吴老师回复:

<...code...> 查看全部

#!/bin/bash 

#for I in 1 3 5 7 9 
for I in `ls /etc` 
do 
	echo "$I" 
done

改成这个样子试一下

收起

我在等,你在飘

1

回答

怎样用脚本命令进入home 目录咧!

杨老师回复:

shell脚本编程就是shell命令的集合,直接输入我们平时输入的命令就可以了。

童娇娇

1

回答

test 报错问题

杨老师回复:

报的是什么错误?注意我们该空格的时候要空格哦!不该空格的时候不要空格,可以发代码发给老师看下哈。

蔡振启

1

回答

最后一个关于分数的程序

杨老师回复:

是的-o是或,-a是与。

MAKERU262087938

1

回答

linux 中为什么要用shell脚本编程啊?脚本编程是用来干什么的啊?

小灰灰回复:

shell脚本是和linux打交道的工具,shell命令就好比你在window下鼠标操作,你用鼠标进行的操作,基本上都可以通过shell命令来实现,而且可以shell还支持强大的正则表达式,继续加油,拿下shell

张宇

1

回答

for number

韩hyr回复:

老师讲命令的模板,称呼for命令in字段后面的内容为单词表,相关的例子也有演示哦,结合看理解!

梁潮龙

2

回答

设备文件怎么新建?权限带c怎么加上去

梁潮龙回复:

那是不是可以使用普通的文本文件修改成字符设备

金稀红

1

回答

课本例题8-23程序这部分没明白:

Linux

韩hyr回复:

联系辅导老师哈

David

1

回答

什么叫命令行参数?

Linux

杨老师回复:

就是我们执行代码时跟的参数,比如./test.sh 1 2 3 4 这样传参就是命令行传参。

进步我最大

1

回答

for死循环那个程序不懂

Linux

吴老师回复:

同学,这个问题有点都呀。咱直接找值班老师,一对一解答吧。

进步我最大

1

回答

shell中的 && || -a -o都是与和或的意思,这两者都是什么情况下用

Linux

吴老师回复:

在 [[]]中 , 能够使用< 或者>符号运算不需要转义符,它还是以字符串比较大小。这个也可以支持逻辑运算符:|| && ,而不再使用-a -o。例如:

1、 [[ 2 < 3 ]]   

2、[[ 2 < 3 && 4 > 5 ]] 


在 [] 中, 常见的>, <需要加转义字符,表示字符串大小比较,通常这里面都是使用 -a -o  -gt -lt 等

例如

1、 [ 2 -gt 1 -a 3 -lt 4 ] 

2、 [ 2 \< 1 ] 

进步我最大

1

回答

shell问题

Linux

吴老师回复:

你可以 按 esc 键, 切换到 命令模式, 就可以使用方向键了

进步我最大

1

回答

一点建议

Linux

韩hyr回复:

同学你看到的是旧版课程,这门课已经升级了2017版,到学习路径下观看吧

玄冰

1

回答

老师,shell中的$都表示什么意思呢?

Linux

Roger回复:

$不是普通用户么, #是超级用户。目前遇到就这两种。

未来大咖

1

回答

shell中可以只有for 和变量吗?

Linux

吴老师回复:

<...code...> 查看全部

shell 中的循环语句 语法结构为

for 变量 in 串行列表
do
   执行命令
done

是将列表中的元素依次取出赋值给变量,然后执行 do done 之间的指令,直到所有元素取尽为止。


收起

机器人007

1

回答

expr

Linux

韩hyr回复:

注意这个符号: ` ,这个符号在键盘左上角TAB上面。

孟现平

3

回答

环境的设置不会

Linux

韩hyr回复:

相关的课程是有的,L1的DAY1课程中有。但是鉴于每个人的硬件环境不同,出现些问题老师是不可能全部预料到的,需要和老师联系,直接看你的具体问题再能帮你解决。可联系首页的答疑,找在线老师帮你解答。需要提的是现在是知识大爆发的时代,不一定所有知识需要依赖老师,成为开发人员需要养成良好的自主解决问题能力,网络上大量前辈提供的信息可以很好借助。

jifangfang

1

回答

if 语句中,exit是加不加都可以吗?

Linux

韩hyr回复:

这个看需求,如果需要满足该条件,则退出当前程序,就需要呀,可以查查exit的用法

张亚斌

1

回答

关于shell编程中的问题

小美回复:

你的匹配条件写的不对,6|7|8)这样的形式的,格式不对。有问题可以直接找辅导老师的。

笑大侠

1

回答

我作业哪里错了啊 老师

韩hyr回复:

在作业提交页面要两种方式提交作业,一种是对话框直接编辑,另一种是添加压缩附件,你提交的作业中没有看到内容也没看到有附件,是不是没有上传对啊?你再试试。

明雷

1

回答

老师请批改作业,谢谢

小美回复:

收到

MINGHUI

1

回答

关于$符号

小美回复:

在shell脚本中,代表以某个字符串结尾.shell命令中也常用。

包泽胜

2

回答

怎样设置vi界面和老师演示的时候一样

包泽胜回复:

sudo vim /etc/vim/vimrc



成效

1

回答

关于^$1: 怎么理解

小美回复:

这个是shell脚本中的写法,$1会传给函数,比如:R=`grep "^linux:"  /etc/passwd  |  wc  -l

凉年

2

回答

关于作业 判断一文件是不是字符设备文件

杨老师回复:

解决方法详见作业的批改内容

乾龙一

1

回答

方括号内实现或是用-o吗?

杨老师回复:

同学,请描述的清晰点!

XCK04000023

3

回答

对小美老师的教学提出一个建议

风影回复:

我也不习惯这个老师的讲课方式,有的重点难点的地方一句话带过,有些简单的地方啰里巴索讲半天,而且声音也忽轻忽重,这是上课,又不是讲给你自己听,总之听她的课比较累。目前听到第二阶段,也不知道她要上几个阶段。

上次保存笔记

看见好看好看就很快很快就会看见

保存 修改