2017-11-16 32 views
0

でAppleScriptのために単一引用符を渡すために、私はゲートウェイでのsshログインするAppleScriptを使用しています。どのようにzshのエイリアス

alias sshtoxxxx="osascript ~/workspace/script/applescript/fox/ssh_xxxx.applescript [email protected] hFVDa4d\'vLe" 

パスワードが含まれている場合 '、それは、ログインすることができないだろう。

とAppleScriptはそれはあなたがZshのか、bashで、二重引用符で囲まれた文字列に単一引用符をまったく使用

on run argv 
    set arg1 to (item 1 of argv) 
    set arg2 to (item 2 of argv) 
    testFunc(arg1,arg2) 
    sshxxx(arg1,arg2)  
end run 

on sshxxx(target,password) 
    tell application "iTerm" 
     reopen 
     activate 
     tell the current window 
      create tab with default profile 
      tell the current tab 
       tell the current session 
        write text "clear" 
        write text "logfin the gate way host" 
        delay 0.2 
        repeat until "xxxxx" is in contents 
        end repeat 
        write text "clear" 
        set targetText to "ssh " & target    
        write text targetText    
        repeat until "password" is in contents 
        end repeat 
        write text password 
       end tell 
      end tell 
     end tell 
    end tell 
end sshxxx 
+0

私は 'iTerm'がどのように動作するか知らないが、これは正しくないpassword' – vadian

答えて

-1

持っていないことはできませんが、二重引用符は、単一引用符の前に閉鎖され、後に再び開かれなければならないにも以下の通りです。例えば。

"This won't work in Bash" 

"This way, it"'"ll work" 
+1

のテキスト引用されたフォームを作成し'てみてください。ここでは、バックスラッシュをドロップする必要があります。 Zshで試してください: 'print" ab'cd "'。それは幸せに* ab'cd *を印刷します。 – user1934428

+0

2番目のオプションは、二重引用符を含む一重引用符で囲まれていない最後の文字列を開始します。実際にあなたは* bashを使ったことがありますか? – chepner

1

質問はAppleScriptに関連していません。 zshのは、呼び出された実行可能ファイルが中に書かれているプログラミング言語、気にしません。

エイリアスを使用したい場合は、あなたのアプローチは正しいです。 Applescriptは、パスワードパラメータをhFVDa4d'vLと表示します。しかし、デバッグを簡単にするために、エイリアスの代わりにZsh関数を使用することをお勧めします。

function sshtoxxxx { 
    osascript ~/workspace/script/applescript/fox/ssh_xxxx.applescript [email protected] "hFVDa4d'vLe" 
} 
関連する問題