`
- 浏览:
21047 次
- 性别:
- 来自:
北京
-
test , [] , [[]]
因为 shell 和我们通常编程语言不同,更多的情况是和它交互,总是调用别人。 所以有些本属于程序语言本身的概念在 shell 中会难以理解。"基本功" 不好, 更容易 "犯困" 了,我就是一个 :-) 。
以 bash 为例 (其他兼容 shell 差不多):
1. test 和 [ 是 bash 的内部命令,GNU/linux 系统的 coreutils 软件包通 常也带 /usr/bin/test 和 /usr/bin/[ 命令。如果我们不用绝对路径指 明,通常我们用的都是 bash 自带的命令。
2. [[ 是 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 keyword
test 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 prelim1
baseurl=${BASEURL}i386/
enabled=1
EOF
----------------------------------------------------------------------
[[]]、[]都是用来测试的,[[]]是关键字,里面可以用&&、||、<、>等类似C语言的语法;[]是bash内嵌的命令,也是用于测试的。[[]]通用性更好些。
(()),类似let,用于计算表达式。()可以把多个命令括起来,在一个子shell运行
分享到:
Global site tag (gtag.js) - Google Analytics
相关推荐
在这里我想说的是几种shell里的小括号,大括号结构和有括号的变量,命令的用法,如下: ...1.Shell中变量的原形:${var} 大家常见的变量形式都是$var,如 $ var=test $ echo $var test 但当你要显示变量值加
主要介绍了简介Linux中cp和mv搭配{,}在shell当中的用法,作者举了四个这样的大括号扩展示例,需要的朋友可以参考下
/ 223.1 什么是Shell变量 / 223.2 环境变量 / 233.3 普通变量 / 313.4 变量定义技巧总结 / 40第4章 Shell变量知识进阶与实践 / 414.1 Shell中特殊且重要的变量 / 414.2 bash Shell内置变量命令 / 524.3 ...
空出的任何行动括号什么都不做。它不会执行默认的打印操作。 8。中的每个行动的声明应该用分号分隔。让我们创建employee.txt文件,其中有 首先, 你需要先了解awk 的工作原理: 1。AWK读取输入文件一次一行
熟悉在shell中使用mkdir -p任何人都会熟悉方括号扩展语法。 它允许一次创建多个子目录。 例如,如果您想为前端项目创建一个基本的src文件夹,则可以执行以下操作: var mkdirp = require ( 'mkdirps-brackets' ) ;...
强大:将 shell 世界与 JavaScript 或 TypeScript 中的函数、模块、库、try/catch/finally、正则表达式等结合起来。 安全:避免大多数 Bash 陷阱并使用自动、。 健壮:使用并通过强化您的代码。概述用法使用sh同步...
用法 $ github-mirror.sh mirror [USER]... 作为一个实际例子,这就是我使用的: $ github-mirror.sh mirror koraa inexor-game premium-cola Shoctode soup 您也可以备份维基: $ show_wiki=true github-mirror.sh ...
[] 匹配中括号里的内容[a-z][A-Z][0-9]。 ! 事件。 $ 取环境变量的值。 | 管道。把前一命令的输出作为后一命令的输入,把几个命令连接起来。 |经常跟tee连用,tee 把内容保存到文档并显示出来。 三、通用后...
双圆括号结构 10. 循环和分支 10.1. 循环 10.2. 嵌套循环 10.3. 循环控制 10.4. 测试与分支(case和select结构) 11. 内部命令与内建 11.1. 作业控制命令 12. 外部过滤器,程序和命令 12.1. 基本命令 ...
9.7. 双圆括号结构 10. 循环和分支 10.1. 循环 10.2. 嵌套循环 10.3. 循环控制 10.4. 测试与分支(case 和select 结构) 11. 内部命令与内建 11.1. 作业控制命令 12. 外部过滤器,程序和命令 12.1. 基本命令 12.2. 复杂...
球状 适用于.NET和.NET Core的AC#Glob库。... 匹配括号中的一个字符 [!abc] 匹配括号中没有的任何字符 ** 匹配零个或多个目录 {abc,123} 以逗号分隔的一组文字,匹配“ abc”或“ 123” 用法 例 var glob
例如,如果您键入“ --file -a create [名称] [扩展名] [文件夹]”,则仅键入“ --file -a create”,方括号中的其他参数只会使您不满意相应的提示。 信息: “ shell.py”文件通过“ interpreter.py”文件执行...
在Pipeline YAML文件中包括以下内容,替换尖括号( < > )中的值: resource_types : - name : type : docker-image source : repository : 18fgsa/s3-resource-simple resources : - name : type : ...
鹿描述deer是的文件导航器,受启发。 为什么我之所以创建deer是因为我真的很喜欢将ranger用作我的Shell的扩展,以快速浏览目录。 不幸的是,它的启动时间... 按键和功能这些函数可以绑定自定义键(默认值在括号中):
Abrevio命令行界面 这是Abrevio服务的命令行外壳脚本。 有关更多信息,请访问 。...括号中的参数是可选的,其用法如下: d仅显示:此参数用于在命令行中显示结果。 如果未指定,脚本将尝试调用默认浏览器以打开链接
它在 Windows NT/2000/XP 中均可使用,但在 Windows 98 中却没有集成这一个工具。 4. explorer-------打开资源管理器 5. logoff---------注销命令 6. shutdown-------60秒倒计时关机命令 7. lusrmgr.msc----本机...
12.4.3 Shell排序 12.5 归并排序 12.6 桶式排序 12.7 基数排序 12.8 小结 第13课 程序开发 13.1 扎实的基本功 13.1.1 快速的输入能力 13.1.2 编程实现能力 13.1.3 快速排错 13.2 程序开发之前 13.2.1 ...