Shell脚本 - 如果声明不同

时间:2017-07-02 10:30:07

标签: bash shell unix

这是一个练习题: 两者之间有什么区别"如果"指令?

if let imageUrl = workout?.workoutImage?.imageUrl {
            let resource = ImageResource(downloadURL: URL(string: imageUrl)!, cacheKey: imageUrl)
            workoutImage.kf.setImage(with: resource)
            // Set image height if image exists
            imageHeightConstraint.constant = (screenWidth - screenInsets) * 0.666
        } else {
            // Set 0 if no image
            imageHeightConstraint.constant = 0
        }

2 个答案:

答案 0 :(得分:3)

方括号是测试命令的同义词,而不是if test ! -f $f我们可以使用if [ ! -f $f ]
注意:test是一个表达和测试的命令或评价。

答案 1 :(得分:1)

没有区别。 void MainWindow::reply_Finished(QNetworkReply *reply) { data_storage.value(reply)->append("test"); data_storage.remove(reply); //other } test现在在大多数(所有?;绝对是短划线,重击,yash,ksh,zsh,fish)贝壳中构建:

[

还有可执行版本:

$ type [ 
[ is a shell builtin
$ type test
test is a shell builtin

$ which [ /usr/bin/[ $ which test /usr/bin/test 不同,cd(或test)不需要是内置的(至少不是常见选项 - 某些shell的扩展要求它是内置),但是外部可执行文件的fork + exec开销对于[测试的小事来说太多了。