检查数据库表时,bash脚本在IF语句上失败

时间:2016-12-26 21:39:07

标签: bash shell sh

我的bash脚本有一个错误:

import UIKit
import Firebase
import FBSDKLoginKit

class ProfileViewController: UIViewController,     UIImagePickerControllerDelegate, UINavigationControllerDelegate {

@IBOutlet weak var imageView: UIImageView!
@IBOutlet weak var secondPhoto: UIImageView!

override func viewDidLoad() {
    super.viewDidLoad()

    self.imageView.frame.size.width / 2;
    self.imageView.layer.cornerRadius = 24
    self.imageView.clipsToBounds = true;

self.secondPhoto.layer.cornerRadius =   self.secondPhoto.frame.size.height / 2;


    secondPhoto.addGestureRecognizer(UITapGestureRecognizer(target: self, action: #selector(handleSecondProfileImageView)))


    profilePicture.addGestureRecognizer(UITapGestureRecognizer(target:self, action: #selector(handleSelectProfileImageView)))

    let uid = FIRAuth.auth()?.currentUser?.uid
    FIRDatabase.database().reference().child("Users").child(uid!).observeSingleEvent(of: .value, with: {(snapshot) in if let dictionary = snapshot.value as? [String: AnyObject]
    {
        self.imageView.loadImageUsingCachWithUrlString(urlString:dictionary["profileImageUrl"] as! String)
        self.secondPhoto.loadImageUsingCachWithUrlString(urlString:dictionary["secondImageUrl"] as! String)

        }
    }, withCancel: nil)

}
    func handleSelectProfileImageView() {
        let picker = UIImagePickerController()
        picker.delegate = self
        picker.allowsEditing = true
        present(picker, animated: true, completion:nil)
    }
    func imagePickerController(_ picker: UIImagePickerController,  didFinishPickingMediaWithInfo info: [String : Any]) {

        var selectedImageFromPicker:UIImage?


        if let editedImage = info["UIImagePickerControllerEditedImage"] as?  UIImage{
            selectedImageFromPicker = editedImage

        }else if let originalImage =  info["UIIMagePickerControllerOriginalImage"] as? UIImage{
            selectedImageFromPicker = originalImage

        }

        if let selectedImage = selectedImageFromPicker{
            updateProfileImageInFirebase(image: selectedImage)
        }

        dismiss(animated: true, completion: nil)
    }

    func imagePickerControllerDidCancel(_ picker: UIImagePickerController) {
        print("canceled picker")
        dismiss(animated: true, completion: nil)
    }

func updateProfileImageInFirebase(image: UIImage){
    let user = FIRAuth.auth()?.currentUser
    guard let uid = user?.uid else {
        return
    }
    if user != nil {
        let imageName = NSUUID().uuidString
        let storageRef =  FIRStorage.storage().reference().child("Profile_Images").child("\(imageName).jpg")
        if let uploadData = UIImageJPEGRepresentation(image, 0.1) {
            storageRef.put(uploadData, metadata: nil, completion: { (metadata, error) in
                if error != nil {
                    print(error!)
                    return
                }

                if let profileImageUrl = metadata?.downloadURL()?.absoluteString {
                    FIRDatabase.database().reference().child("Users").child(uid).updateChildValues(["profileImageUrl": profileImageUrl])
                }
            })
        }
    }
}

func handleSecondProfileImageView() {
    let picker = UIImagePickerController()
    picker.delegate = self
    picker.allowsEditing = true
    present(picker, animated: true, completion:nil)
}
func secondimagePickerController(_ picker: UIImagePickerController,  didFinishPickingMediaWithInfo info: [String : Any]) {

    var selectedImageFromPicker:UIImage?


    if let editedImage = info["UIImagePickerControllerEditedImage"] as?  UIImage{
        selectedImageFromPicker = editedImage

    }else if let originalImage =  info["UIIMagePickerControllerOriginalImage"] as? UIImage{
        selectedImageFromPicker = originalImage

    }

    if let selectedImage = selectedImageFromPicker{
        updatesecondAvatarImageInFirebase(image: selectedImage)
    }

    dismiss(animated: true, completion: nil)
}

func secondimagePickerControllerDidCancel(_ picker: UIImagePickerController) {
    print("canceled picker")
    dismiss(animated: true, completion: nil)
}

func updatesecondAvatarImageInFirebase(image: UIImage){
    let user = FIRAuth.auth()?.currentUser
    guard let uid = user?.uid else {
        return
    }
    if user != nil {
        let imageName = NSUUID().uuidString
        let storageRef =  FIRStorage.storage().reference().child("Second_Images").child("\(imageName).jpg")
        if let uploadData = UIImageJPEGRepresentation(image, 0.1) {
            storageRef.put(uploadData, metadata: nil, completion: { (metadata, error) in
                if error != nil {
                    print(error!)
                    return
                }

                if let secondImageUrl = metadata?.downloadURL()?.absoluteString {
                    FIRDatabase.database().reference().child("Users").child(uid).updateChildValues(["secondImageUrl": secondImageUrl])
                }
            })
        }
    }
}

当我运行此脚本时,即使test_demo表存在,它也总是在CREATING路径中结束... 脚本的输出如下所示:

TEXISTS=$(psql -U postgres --quiet --tuples-only -d test -c "SELECT EXISTS ( SELECT 1 FROM information_schema.tables WHERE table_name = 'test_demo');");
echo $TEXISTS
if [ "$TEXISTS" = "t" ]; then
    echo EXISTS
else
    echo CREATING       
fi

似乎无法看到我的错误......

编辑1

testbox:/tmp# sh createtabletest.sh 
t
CREATING   

1 个答案:

答案 0 :(得分:1)

$TEXISTS包含一个前导空白。将"t"替换为" t"。                     – Cyrus