最近接触shell 感觉 语法真是奇怪无比
if 貌似 有的时候能加 [] 而有的时候是不能加 [] 的 这什么时候能加 什么时候不能加呢
还有 if 什么时候是获取 命令执行后输出的内容 还有 是什么时候命令执行后是否成功 也就是 echo $? 呢 感觉 if 变化太多了
最近接触shell 感觉 语法真是奇怪无比
if 貌似 有的时候能加 [] 而有的时候是不能加 [] 的 这什么时候能加 什么时候不能加呢
还有 if 什么时候是获取 命令执行后输出的内容 还有 是什么时候命令执行后是否成功 也就是 echo $? 呢 感觉 if 变化太多了
if 貌似 有的时候能加 [] 而有的时候是不能加 [] 的 这什么时候能加 什么时候不能加呢
还有 if 什么时候是获取 命令执行后输出的内容
A:用反引号``,例如a=`pwd`就是获取当前路径然后复制到a变量
还有 是什么时候命令执行后是否成功 也就是 echo $? 呢
A:$? 返回值0代表执行成功,返回值1代表执行失败
7 回答5.3k 阅读
4 回答4k 阅读
2 回答5.9k 阅读✓ 已解决
2 回答2.5k 阅读✓ 已解决
1 回答2.3k 阅读✓ 已解决
2 回答796 阅读✓ 已解决
2 回答3.2k 阅读
man test
,当[
只是一个普通的命令就行了。if [ -d /root ]
等同于if test -d /root
,语义是if isdir /root
。你直接这样执行也可以啊:if
难道有形式是直接判断程序的stdout有没有输出的?没有吧~if
始终只是判断程序执行结果的exit status,即$?
,0表示true,非0表示false。对了,其实了解下
$?
、SIG、Pipe之类的是什么就行了,Bash这些奇怪的语法真的不用多学的,反正真要写脚本,干嘛不用Python呢,PHP也比Bash好啊。过来人~说多了都是泪!