shell shell脚本学习指南问题

更多频道内容在这里查看
爱奇艺用户将能永久保存播放记录
过滤短视频
暂无长视频(电视剧、纪录片、动漫、综艺、电影)播放记录,
使用您的微博帐号登录,即刻尊享微博用户专属服务。
使用您的QQ帐号登录,即刻尊享QQ用户专属服务。
使用您的人人帐号登录,即刻尊享人人用户专属服务。
按住视频可进行拖动
把视频贴到Blog或BBS
当前浏览器仅支持手动复制代码
视频地址:
flash地址:
html代码:
通用代码:
通用代码可同时支持电脑和移动设备的分享播放
收藏成功,可进入查看所有收藏列表
方式1:用手机看
用爱奇艺APP或微信扫一扫,在手机上继续观看:
第4部 14-shell脚本常见开发错误案例汇总
方式2:一键下载至手机
限爱奇艺安卓6.0以上版本
使用微信扫一扫,扫描左侧二维码,下载爱奇艺移动APP
其他安装方式:手机浏览器输入短链接http://71.am/udn
下载安装包到本机:&&
设备搜寻中...
请确保您要连接的设备(仅限安卓)登录了同一爱奇艺账号 且安装并开启不低于V6.0以上版本的爱奇艺客户端
连接失败!
请确保您要连接的设备(仅限安卓)登录了同一爱奇艺账号 且安装并开启不低于V6.0以上版本的爱奇艺客户端
部安卓(Android)设备,请点击进行选择
请您在手机端下载爱奇艺移动APP(仅支持安卓客户端)
使用微信扫一扫,下载爱奇艺移动APP
其他安装方式:手机浏览器输入短链接http://71.am/udn
下载安装包到本机:&&
爱奇艺云推送
请您在手机端登录爱奇艺移动APP(仅支持安卓客户端)
使用微信扫一扫,下载爱奇艺移动APP
180秒后更新
打开爱奇艺移动APP,点击“我的-扫一扫”,扫描左侧二维码进行登录
没有安装爱奇艺视频最新客户端?
爸爸去哪儿2游戏 立即参与
第4部 14-shell脚本常见开发错误案例汇总
播放量数据:
1,071人已订阅
你可能还想订阅他们:
{{#needAdBadge}} 广告{{/needAdBadge}}
&正在加载...
您使用浏览器不支持直接复制的功能,建议您使用Ctrl+C或右键全选进行地址复制
安装爱奇艺视频客户端,
马上开始为您下载本片
5秒后自动消失
&li data-elem="tabtitle" data-seq="{{seq}}"& &a href="javascript:void(0);"& &span>{{start}}-{{end}}&/span& &/a& &/li&
&li data-downloadSelect-elem="item" data-downloadSelect-selected="false" data-downloadSelect-tvid="{{tvid}}"& &a href="javascript:void(0);"&{{pd}}&/a&
选择您要下载的《
色情低俗内容
血腥暴力内容
广告或欺诈内容
侵犯了我的权力
还可以输入
您使用浏览器不支持直接复制的功能,建议您使用Ctrl+C或右键全选进行地址复制:转载时请以超链接形式标明文章原始出处和作者信息及本声明
shell在判断字母大小写的时候好像存在问题,如下脚本,命令行输入参数,脚本判断传入参数是大写字母、小写字母、或者数字,脚本名称ctype.sh
if [ $# -ne 1 ]then&&& echo "usage cytpe char"&&& exitfi
char=$1echo $charnumchars=$(echo $char|wc -c)if [ "$numchars" -ne 2 ]then&&& echo "please one char"&&& exitfi
case "$char"&&& in&&& [0-9] );&&& [a-z] );&&& [A-Z] )&&& * );esac
执行脚本./ctype.sh A
结果:little char
&[a-z] );&[A-Z] )
这两行颠倒过来,结果出了a外,其他小写字母全被当成了upper char
为什么呢?
搜了下,网上也有人遇到这种问题,但是只有解决方案,没有说原因
在脚本最前面加入export LC_ALL=C
&[a-z] );&&[A-Z] )改为
[[:lower:]] );
[[:upper:]] );
可是为什么这样呢?有人能回答吗
不管三七二十一,先记录下来,免得下次遇到类似问题
引用地址:
flab:xingxing:fxfsmile:fxfsmile:fxfsmile:fxfsmile::lan:lan:fxzeng:
访问统计:关于shell脚本问题,谁能给我解释解释这个脚本里,每个符号的作用.sed 's///;s///;s///;s/ //g;s/ //g;/^$/d' $1 | sed -e :a -e '$!N;s/\n/ /;s// /;ta' -e 'P;D' | sed -e :a -e '$!N;s/\n/ /;s// /;ta' -e 'P;D' | sed -e :a -e '$!N;s/\n/ /;s// /;ta' -e 'P;D' | sed -e :a -e '$!N;s/\n/ /;ta' -e 'P;D' | grep '^' | sed 's///' >> $2
拜托,正则表达式你都不懂怎么跟你解释呢?sed 's///;s///;s///;s/ //g;s/ //g;/^$/d' $1第一句执行了6条替换命令s/XXX/xxx/分别表示把 替换成空字符串,也就是删除.删除换行删除,空格全部删除.空行删除.第二句:sed -e :a -e '$!N;s/\n/ /;s// /;ta' -e 'P;D'就复杂了,解释这个你自己得知道sed的原理.我猜你是不知道所以不解释.这个东西能写一本书啊.你去看这本书吧:《 Sed与Awk (中文版) 》
为您推荐:
其他类似问题
扫描下载二维码sh执行shell脚本语法错误 - 推酷
sh执行shell脚本语法错误
今天调试一个脚本,用./的方式直接运行脚本没有发现任何问题,但是当我用如下命令打印调试信息的时候就会发现各种问题:
sh -x sample.sh
下面给出sample.sh
#!/bin/bash
&& &echo &Hello, this is a function.&
if [ ! -z $1 ] && [ $1 == '1' ] ; then
&& &echo &no argument.&
通过sh执行发现报如下错误:
sample.sh: 3: sample.sh: Syntax error: &(& unexpected
但是用./sample.sh方式执行却不会发生任何错误,也就是说脚本的自身执行是没有问题的,执行sh程序的时候才会有语法错误。
其实语法错误的原因在于两次执行的不是同一种shell,在用./sample的方式执行的时候,系统会使用脚本首行声明的/bin/bash来解释脚本,而用sh方式执行的时候,系统会调用sh这个程序,在我的机器上看一下sh这个程序的来源:
snow@snow-desktop:~$ ll `which sh`
lrwxrwxrwx 1 root root 4 11月
9 10:17 /bin/sh -& dash*
表明sh实际上是dash,和./sample.sh方式使用的并不是同一种shell,所以才会发生奇怪的语法错误。
已发表评论数()
请填写推刊名
描述不能大于100个字符!
权限设置: 公开
仅自己可见
正文不准确
标题不准确
排版有问题
主题不准确
没有分页内容
图片无法显示
视频无法显示
与原文不一致

我要回帖

更多关于 shell脚本学习指南 的文章

 

随机推荐