Re: Another Applescript noob
Re: Another Applescript noob
- Subject: Re: Another Applescript noob
- From: "Mark J. Reed" <email@hidden>
- Date: Thu, 27 May 2010 12:19:38 -0400
Right. So what you type isn't "usernamedepartmentname" or even
"username departmentname". It's "username" & return &
"departmentname" & return.
And since it's more than one line, echo isn't going to work like that.
And you always need to quote things you pass to the shell.
Here are a few ways to do it:
set inputString to loginname & linefeed & departmentname
do shell script "/Users/gvsuadmin/Desktop/adbind.sh <<<" & quoted
form of inputString
Or:
do shell script "(echo " & quoted form of loginname & "; echo " &
quoted form of departmentname & ") |
/Users/gvsuadmin/Desktop/adbind.sh"
Or:
set inputString to loginname & "\\n" & departmentname
do shell script "echo -e " & quoted form of inputString & "|
/Users/gvsuadmin/Desktop/adbind.sh"
But if adbind.sh is a shell script you have control over, I would just
modify it so that it accepts the data it needs as commandline
parameters. That is, unless it's running some other program that does
all the prompting, it's currently doing something like this:
echo -n "Enter login name: "
read loginname
echo -n "Enter department name: "
read departmentname
where it could do this instead:
loginname="$1"
departmentname="$2"
On Thursday, May 27, 2010, Joy <email@hidden> wrote:
> It prompts me for the login name of the users and then it prompts me for the department and then that's it. Well, other then the reboot that happens.
>
> On May 27, 2010, at 11:18 AM, Mark J. Reed wrote:
> If you run adbind.sh in the terminal, what do you have to type? I'm betting you have to hit the return key after each of those values. Which means you need to put linefeeds between them in your string. Try 'loginname & linefeed & department ...'
>
>
>
> On Thu, May 27, 2010 at 11:00 AM, Joy <email@hidden> wrote:
>
> Just tried that. It compiled, but the result was the same.
>
>
> On May 27, 2010, at 10:59 AM, Bradvica, Robert wrote:
>
>> I think it should be loginname & " " & department
>>
>>
>> On 5/27/10 7:58 AM, "Joy" <email@hidden> wrote:
>>
>> Everytime I enter a space and hit compile, it removes the space.
>>
>> On May 27, 2010, at 10:44 AM, Bradvica, Robert wrote:
>>
>>> Is it just as simple as a space between loginname and department on line 7?
>>>
>>>
>>> On 5/27/10 7:40 AM, "Joy" <email@hidden> wrote:
>>>
>>> I'm missing something in my applescript.
>>>
>>> I've got the variables setup and the display dialogs seem to work, but the variables aren't being passed to the script correctly. Here's what I have so far for my applescript
>>>
>>>
>>> property loginname : ""
>>> display dialog "Enter your loginname without the container:" default answer loginname
>>> set the loginname to text returned of the result
>>> property department : ""
>>> display dialog "Enter your Department:" default answer department
>>> set the department to text returned of the result
>>> do shell script ("echo " & loginname & department & " | /Users/gvsuadmin/Desktop/adbind.sh") user name "xxxx" password "xxxx" with administrator privileges
>>>
>>>
>>>
>>> On Wednesday, May 26, 2010, at 05:54PM, "Mark J. Reed" <email@hidden> wrote:
>>>> _______________________________________________
>>>> Do not post admin requests to the list. They will be ignored.
>>>> AppleScript-Users mailing list (email@hidden)
>>>> Help/Unsubscribe/Update your Subscription:
>>>> Archives: http://lists.apple.com/archives/applescript-users
>>>>
>>>> This email sent to email@hidden
>>>>
>>> On Wed, May 26, 2010 at 3:18 PM, Emmanuel LEVY <email@hidden> wrote:
>>> On May 26, 2010, at 9:03 PM, Mark J. Reed wrote:
>>>
>>> You can run the script inside Terminal with 'tell application "Terminal" to do script "...."', instead of 'do shell script', and then the script can interact with the user as needed.
>>>
>>> Or if the script just expects certain things on its input but doesn't need a terminal, you can prompt for them with 'display dialog' and then use "echo" or <<< as part of the shell command to feed the input to it.
>>>
>>> Or you can use display dialog's output in line, like in:
>>>
>>> -- tested
>>> do shell script "ls " & (text returned of (display dialog "Enter directory to list:" default answer "/"))
>>>
>>> I got the impression the OP was talking about the command reading things from its input stream, so it'd be more like
>>>
>>> do shell script "command arguments <<<" & (quoted form of (text returned of (display dialog "Enter data:
>
_______________________________________________
Do not post admin requests to the list. They will be ignored.
AppleScript-Users mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
Archives: http://lists.apple.com/archives/applescript-users
This email sent to email@hidden