跳转到内容
新建笔记

Shell 命令替换

(1)${a} 变量 a 的值, 在不引起歧义的情况下可以省略大括号。 (2)$(cmd) 命令替换,和`cmd`效果相同,结果为 shell 命令 cmd 的输,过某些 Shell 版本不支持$()形式的命令替换, 如 tcsh。 (3)$((expression)) 和exprexpression效果相同, 计算数学表达式 exp 的数值, 其中 exp 只要符合 C 语言的运算规则即可, 甚至三目运算符和逻辑表达式都可以计算。

(1)单小括号,(cmd1;cmd2;cmd3) 新开一个子 shell 顺序执行命令cmd1,cmd2,cmd3, 各命令之间用分号隔开, 最后一个命令后可以没有分号。 (2)单大括号,{ cmd1;cmd2;cmd3;} 在当前 shell 顺序执行命令cmd1,cmd2,cmd3, 各命令之间用分号隔开, 最后一个命令后必须有分号, 第一条命令和左括号之间必须用空格隔开。 对 {} 和 () 而言, 括号中的重定向符只影响该条命令, 而括号外的重定向符影响到括号中的所有命令。