0
Macでスクリプトを作成したいと思っています。これはウェブ上のスクリプトに基づいています。ショーのいくつかのダイアログの後にMySQLが)、ダイアログが正常に動作しますが、私はそれが動作しないsudo rm lines
を入れたときに、それはSyntax Error
言う、これは私のコードです:MacOSのシェルスクリプト(osascript)でsudo rmコマンドを実行するとエラーが発生する
#!/bin/sh
osascript <<EOT
app "System Events"
set answer to the button returned of (display dialog "You want to delete MySQL?" buttons {"Yes", "No"} default button 2)
if (answer = "No") then
display dialog "Canceled" buttons {"ok"}
else
if (answer = "Yes")then
sudo rm /usr/local/mysql
sudo rm -rf /usr/local/var/mysql
sudo rm -rf /usr/local/mysql*
sudo rm ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist
sudo rm -rf /Library/StartupItems/MySQLCOM
sudo rm -rf /Library/PreferencePanes/My*
sudo rm -rf /var/db/receipts/com.mysql.*
sudo rm -rf /Library/Receipts/MySQL*
sudo rm -rf /private/var/db/receipts/*mysql*
launchctl unload -w ~/Library/LaunchAgents/com.mysql.mysql.plist
launchctl unload -w ~/Library/LaunchDaemons/com.st.plist
set answer to the button returned of (display dialog "MySQL deleted, restart necesary.\nrestart now?" buttons {"Yes","Restart Later"}default button 2)
end if
end if
return -- Suppress result
end
EOT
EDIT: 私は@that他の男のようにしてみてください
`do shell script "sudo rm /usr/local/mysql &&
sudo rm -rf /usr/local/var/mysql &&
sudo rm -rf /usr/local/mysql* &&
sudo rm ~/Library/LaunchAgents/homebrew.mxcl.mysql.plist &&
sudo rm -rf /Library/StartupItems/MySQLCOM &&
sudo rm -rf /Library/PreferencePanes/My* &&
sudo rm -rf /var/db/receipts/com.mysql.* &&
sudo rm -rf /Library/Receipts/MySQL* &&
sudo rm -rf /private/var/db/receipts/*mysql* &&
launchctl unload -w ~/Library/LaunchAgents/com.mysql.mysql.plist &&
launchctl unload -w ~/Library/LaunchDaemons/com.st.plist"`
ただし、1つの通信実行を停止するだけで停止します。ここでは、@CharlesDuffyと@zneakを@thatotherguyする
ザ・マックの自動化スクリプトガイド.com/library/content/documentation/LanguagesUtilities/Conceptual/MacAutomationScriptingGuide/CallCommandLineUtilities.html)シェルコマンドをAppleScriptに埋め込む'do shell script 'ls/Applications /" ' –
なぜ以前からではなく' osascript'を起動した後に 'sudo' *を使用しようとしていますか? –
つまり、 'sudo osascript'はすべてをrootとして実行するので、その時点の後ろのどこでも' sudo'を使う必要はありません。 –