linux shell bash使用管道|和read结合时问题解决
2015-07-22 10:53
525 查看
最近在将ksh转成bash运行的时候出现了问题。代码如下:
当使用ksh执行的时候没有问题,FILE_NAME能获取到正确的值。但当使用bash执行时,FILE_NAME值为空。
找了半天也不知道什么原因,最后找到了一种解决方法。代码如下:
上面的代码有两点需要注意:
①使用了 <<< ,这个叫“here string",中文不知道叫什么,具体用法可以参考:http://www.360doc.com/content/10/0303/18/155970_17452864.shtml
②<<<之后的代码使用了反单引号括了起来,否则执行会报错。
参考:http://bbs.chinaunix.net/thread-1821214-1-1.html
linux中查看现在使用的shell是ksh还是bash?以及怎样修改?
查看系统支持的shell: cat /etc/shells
查看现在使用的shell:
修改默认shell:
具体解释清参考:http://blog.chinaunix.net/uid-20722281-id-160012.html
另外,修改了系统默认shell之后不会立即生效,之后再次登录系统修改的shell才会生效。
echo $1 | sed 's/\..*$/''/' | read FILE_NAME
当使用ksh执行的时候没有问题,FILE_NAME能获取到正确的值。但当使用bash执行时,FILE_NAME值为空。
找了半天也不知道什么原因,最后找到了一种解决方法。代码如下:
read FILE_NAME <<< ` echo $1 | sed 's/\..*$/''/' `
上面的代码有两点需要注意:
①使用了 <<< ,这个叫“here string",中文不知道叫什么,具体用法可以参考:http://www.360doc.com/content/10/0303/18/155970_17452864.shtml
②<<<之后的代码使用了反单引号括了起来,否则执行会报错。
参考:http://bbs.chinaunix.net/thread-1821214-1-1.html
linux中查看现在使用的shell是ksh还是bash?以及怎样修改?
查看系统支持的shell: cat /etc/shells
查看现在使用的shell:
修改默认shell:
具体解释清参考:http://blog.chinaunix.net/uid-20722281-id-160012.html
另外,修改了系统默认shell之后不会立即生效,之后再次登录系统修改的shell才会生效。
相关文章推荐
- linux shell bash使用管道|和read结合时问题解决
- 我的一些简单的shell脚本实例
- 基本shell编程【3】- 常用的工具awk\sed\sort\uniq\od
- 基本shell编程【2】-服务端发布脚本
- hbase常用的shell命令例子
- shell获取IP地址
- shell 之点滴记录
- Mysql 查询注意和执行shell命令
- 计算100以内所有奇数的和以及所有偶数的和
- 03 bash特性
- Linux下常用的shell命令记录1
- 学习笔记(十一)——Linux Shell 基础知识
- shell步步进阶--- >/dev/null 2>&1
- mysql dump shell 脚本crontab 计划任务
- shell步步进阶---测试文件是否存在的2种shell写法
- root后adb shell默认不是root用户时,如何将文件放入手机系统中
- Exchange的PowerShell中关于Filter的写法
- 利用xshell密钥管理服务器远程登录+VIM dd命令操作之伤之再伤
- shell中curl 用户详解
- iOS工程自动打包 (Shell脚本打包)