【shell】test , [] , [[]] 的区别
来源:互联网 发布:xy助手for mac 编辑:程序博客网 时间:2024/04/27 19:53
因为 shell 和我们通常编程语言不同,更多的情况是和它交互,总是调用别人。 所以有些本属于程序语言本身的概念在 shell 中会难以理解。"基本功" 不好, 更容易 "犯困" 了,我就是一个 :-) 。
以 bash 为例 (其他兼容 shell 差不多):
- test 和 [ 是 bash 的内部命令,GNU/linux 系统的 coreutils 软件包通 常也带 /usr/bin/test 和 /usr/bin/[ 命令。如果我们不用绝对路径指 明,通常我们用的都是 bash 自带的命令。
- [[ 是 bash 程序语言的关键字!
$ ls -l /usr/bin/[ /usr/bin/test-rwxr-xr-x 1 root root 37400 9月 18 15:25 /usr/bin/[-rwxr-xr-x 1 root root 33920 9月 18 15:25 /usr/bin/test$ type [ [[ test[ is a shell builtin[[ is a shell keywordtest is a shell builtin
绝大多数情况下,这个三个功能通用。但是命令和关键字总是有区别的。命令和 关键字的差别有多大呢?
如果是命令,它就和参数组合为一体被 shell 解释,那样比如 ">" "<" 就被 shell 解释为重定向符号了。关键字却不这样。
在 [[ 中使用 && 和 ||
[ 中使用 -a 和 -o 表示逻辑与和逻辑或。
[[ 中可以使用通配符
arch=i486[[ $arch = i*86 ]] && echo "arch is x86!"
[[ 中匹配字符串或通配符,不需要引号
[[ $arch_com = i386 || $ARCH = i*86 ]] && cat >> $TFS_REPO <<EOF[tfs-i386]name=GTES11.3 prelim1baseurl=${BASEURL}i386/enabled=1EOF
- 【shell】test , [] , [[]] 的区别
- shell 的test命令
- shell test的使用
- Shell的test
- shell中let和(())、[]、test、[[]]区别
- shell 的test测试命令
- shell里面的test用法
- Smoke test,Sanity test,Regression test之间的区别
- Smoke test,Sanity test,Regression test之间的区别
- Smoke test,Sanity test,Regression test之间的区别
- Smoke test,Sanity test,Regression test之间的区别
- shell test
- html() test() val()的区别
- shell test -n中细节的用法
- Linux shell 的 test 命令用法详解
- Shell脚本的test命令用法
- Linux shell 的 test 命令用法详解
- linux shell中 test 的用法
- adb 抓屏 僵死进程
- ACCESS 数据库插入时间/日期
- Invalid content was found starting with element 'taglib'错误 .
- 网站学习备忘007——文件操作
- QT多线程实现图片以缩略图形式显示
- 【shell】test , [] , [[]] 的区别
- CSS中命名颜色
- facebook分享(附demo)
- HTML、CSS里面关于 id、class、name 属性的区别和用法
- ckeditor java应用 及管理
- FIFO 同步、异步以及Verilog代码实现
- c# Winform 开发分屏显示应用程序
- C#中获取应用程序路径的方法
- 上传方法