Linux中编写shell脚本,输出如下序列:1,3,2,4,3,5,4,6,···100 。[附图]
答案:5 悬赏:0 手机版
解决时间 2021-04-06 05:50
- 提问者网友:沦陷
- 2021-04-05 22:25
Linux中编写shell脚本,输出如下序列:1,3,2,4,3,5,4,6,···100 。[附图]
最佳答案
- 五星知识达人网友:举杯邀酒敬孤独
- 2021-04-06 00:02
脚本至少有如下错误:
{j}改为${j}或$j,是要取值的啊
expr语句外面是反引号(键盘上ESC下面那个键)而不是单引号,表示执行命令而不是单纯一个字符串,expr后面的运算符左右两侧要有空格。
if跟[之间是要有空格的,if判断表达式比较符两侧也要有空格,数字跟 [ ]之间要有空格。
我修正了,自己运行成功生成你要的数列了。你自己对比下吧:
#!/bin/bash
#script name prg8.sh
clear
i=1
for ((j=1;j<=98;j++))
do
echo -n "$j,`expr $j + 2`,"
if [ $i -eq 10 ]
then
echo ""
i=1
else
i=$((i+1))
fi
done
echo "" 注释里已经说了,script name prg8.sh,脚本名叫prg8.sh,当然,叫什么名字是你的自由。
追问
①之前做错的我给保存了。如何修改呢?
我打开了这个脚本 怎么不能修改呢? 【 用 vi 12.sh 打开的】
难道保存了之后就不能修改了吗??还得重新做一遍吗?
②
还有一个问题,按照你说的做成这样了,不对哦
追答① vi打开文件默认进入命令模式,需要按一下 i 进入编辑模式。这个具体操作你还是搜索下得来得比较完整。
② 你题目的要求就是这样:输出如下序列:1,3,2,4,3,5,4,6,···100
至少这几位跟你的要求都是一致的。你说不对,请具体说说哪里跟你的要求不匹配了?
{j}改为${j}或$j,是要取值的啊
expr语句外面是反引号(键盘上ESC下面那个键)而不是单引号,表示执行命令而不是单纯一个字符串,expr后面的运算符左右两侧要有空格。
if跟[之间是要有空格的,if判断表达式比较符两侧也要有空格,数字跟 [ ]之间要有空格。
我修正了,自己运行成功生成你要的数列了。你自己对比下吧:
#!/bin/bash
#script name prg8.sh
clear
i=1
for ((j=1;j<=98;j++))
do
echo -n "$j,`expr $j + 2`,"
if [ $i -eq 10 ]
then
echo ""
i=1
else
i=$((i+1))
fi
done
echo "" 注释里已经说了,script name prg8.sh,脚本名叫prg8.sh,当然,叫什么名字是你的自由。
追问
①之前做错的我给保存了。如何修改呢?
我打开了这个脚本 怎么不能修改呢? 【 用 vi 12.sh 打开的】
难道保存了之后就不能修改了吗??还得重新做一遍吗?
②
还有一个问题,按照你说的做成这样了,不对哦
追答① vi打开文件默认进入命令模式,需要按一下 i 进入编辑模式。这个具体操作你还是搜索下得来得比较完整。
② 你题目的要求就是这样:输出如下序列:1,3,2,4,3,5,4,6,···100
至少这几位跟你的要求都是一致的。你说不对,请具体说说哪里跟你的要求不匹配了?
全部回答
- 1楼网友:舊物识亽
- 2021-04-06 04:59
你这是shell脚本,又不是c程序。shell脚本设置下就可以直接跑,不用编译。
先把你的文件名改成12.sh(当然名字不重要,只是用来标识是shell脚本的)
chmod 777 12.sh
. ./12.sh 或者是source ./12.sh
就可以执行了。追问
按照你说的,出现这种情况如何解决
- 2楼网友:青灯有味
- 2021-04-06 03:29
孩子脚本语言是不需要编译的,sh 12.c就可以了,还有shell脚本一般以sh为扩展名,不要用c,也可以chmod +x 12.c 加可执行权限,./12.c来执行追问
出现这种情况,怎么办呢
出现这种情况,怎么办呢
- 3楼网友:蓝房子
- 2021-04-06 03:01
上面写的真的是shell脚本,不是C。可以直接执行的,GCC的编译针对于C的。这个真的弄混了。还有GCC的用法写的不对啊,详情可以参见百度上的教程。追问
出现这种情况 怎么办呢追答#语法错了
if ["$Y" == "y"]; then
echo "ok ,continue"
exit
fi
出现这种情况 怎么办呢追答#语法错了
if ["$Y" == "y"]; then
echo "ok ,continue"
exit
fi
- 4楼网友:玩家
- 2021-04-06 01:42
你只是想输出1~100这100个数字??
直接用循环就行了啊
代码
#!/bin/bash
for (( i=1; i<=100 ; i=i+1 ))
do
echo "$i"
done
————————————————————
看错题目了,当我没答
直接用循环就行了啊
代码
#!/bin/bash
for (( i=1; i<=100 ; i=i+1 ))
do
echo "$i"
done
————————————————————
看错题目了,当我没答
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯