Applescript和终端(在一个终端窗口中运行多个do shell脚本)

3

我有几个shell脚本,它们的激活顺序并不相同。

但是我想留在同一个终端窗口中。

为了简化问题,我们可以以以下示例说明:

第一个脚本 - 进入工作目录 第二个脚本 - 在该目录中执行某些操作并获取文件。 第三个脚本 - 对该目录中新文件/文件夹执行更多操作。 第四个脚本 - ....

如何让脚本2和3(即所有脚本)在打开脚本1期间的同一目录和窗口中运行?

例如,如何避免为每个文件使用该文件夹的完整路径。

编辑:在adayzdone的答案之后,我意识到我忘记提到我需要管理员权限来执行其中一个脚本

编辑2:目前我使用这个

tell application "Terminal"
    set newTab to do script
    set current settings of newTab to settings set "Grass"
    do script "bin/sh/ echo 'xx' | su;" in newTab
    do script "cd " & quoted form of realParentPath in newTab
    do script shellscript1 in newTab
    do script shellscript..n in newTab
    activate
end tell

但特权仍然没有生效。

1个回答

1

尝试:

tell application "Terminal"
    do script "cd ~/" in window 1
    do script "ls -a" in window 1
end tell

或者

property usr : "username"
property pswd : "password"

set xxx to do shell script "cd ~/ ; ls -a " user name usr password pswd with administrator privileges

谢谢,已经有所帮助。但是我需要一个脚本的管理员权限。但我找不到/不知道如何添加权限,或者我应该在我的shell脚本中使用“echo $passw | sudo -u root”吗? - Lord iPhonius
你需要从终端运行它而不是使用“do shell script”命令的原因是什么? - adayzdone
使用“do shell script”时,我没有通用的shell,例如第一个“do shell script”中的CD在第二个“do shell script”中没有任何用处。我是对的还是...第二个原因是,我也想通过可视化一些脚本结果而不是仅仅记录。但是无论如何,如果您告诉我如何解决CD问题,我可以在另一个脚本中使用它。再次感谢。顺便说一句,关于权限问题,我看到我的评论中少了一行,我总是得到“抱歉”的结果。 - Lord iPhonius
谢谢。是的,但那是使用“do shell script”,而不是“do script”,并且会丢失CD路径。 - Lord iPhonius
只要您像我在答案中所做的那样使用分号分隔命令,就不会丢失CD路径。 - adayzdone
再次感谢。是的,我知道,但我必须在Shell脚本之间使用Apple脚本来完成任务。这就是为什么有3个以上的Shell脚本的原因。如果可以一次性完成,我会使用外部shell.command脚本。 - Lord iPhonius

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接