Выполнение команды в новом Окне терминала Mac OS X

При добавлении динамического содержимого или добавлении других элементов после загруженного окна или любых данных Ajax, в этом состоянии статический щелчок $(element).click(function(){}) не работает, Вы должны связать целевой элемент с документом, вот пример [ 116]:

$(document).on('click', 'your target element', function(){
    //your code here......
});

_ - - - - - - _

Спасибо

_ - - - - - - _ [115 ]

85
задан Trevor Hickey 25 October 2018 в 17:49
поделиться

6 ответов

один из способов, который я могу придумать. сделать это из моих мыслей - это создать файл .command и запустить его так:

echo echo hello > sayhi.command; chmod +x sayhi.command; open sayhi.command

или использовать applescript:

osascript -e 'tell application "Terminal" to do script "echo hello"'

, хотя вам либо придется избегать большого количества двойных кавычек, либо вы не сможете использовать одинарные кавычки

87
ответ дан 24 November 2019 в 08:14
поделиться

Коллега спросил меня, как открыть A LOT ssh сессий сразу. Я использовал ответ cobbal для записи этого сценария:

tmpdir=$( mktemp -d )
trap '$DEBUG rm -rf $tmpdir ' EXIT
index=1

{
cat <<COMMANDS
ssh user1@host1
ssh user2@host2
COMMANDS
} | while read command
do 
  COMMAND_FILE=$tmpdir/$index.command
  index=$(( index + 1 ))
  echo $command > $COMMAND_FILE
  chmod +x  $COMMAND_FILE
  open $COMMAND_FILE
done
sleep 60

Путем обновления списка команд (они не должны быть ssh вызовами), Вы получите дополнительное открытое окно для каждой выполняемой команды. sleep 60 в конце там для имения в наличии .command файлы, в то время как они выполняются. Иначе оболочка завершается слишком быстро, выполняя прерывание для удаления временного каталога (созданный mktemp), прежде чем запущенные сессии будут иметь возможность считать файлы.

0
ответ дан 24 November 2019 в 08:14
поделиться

Частичное решение:

Поместите то, что вы хотите, в сценарий оболочки, например,

#!/bin/bash
ls
echo "yey!"

И не забудьте ' chmod + x file 'чтобы сделать его исполняемым. Затем вы можете

open -a Terminal.app scriptfile

, и он будет запущен в новом окне. Добавьте « bash » в конец скрипта, чтобы не допустить выхода из нового сеанса. (Хотя вам, возможно, придется придумать, как загружать rc-файлы пользователей и прочее ..)

63
ответ дан 24 November 2019 в 08:14
поделиться

Вот еще один вариант (также с использованием AppleScript):

function newincmd() { 
   declare args 
   # escape single & double quotes 
   args="${@//\'/\'}" 
   args="${args//\"/\\\"}" 
   printf "%s" "${args}" | /usr/bin/pbcopy 
   #printf "%q" "${args}" | /usr/bin/pbcopy 
   /usr/bin/open -a Terminal 
   /usr/bin/osascript -e 'tell application "Terminal" to do script with command "/usr/bin/clear; eval \"$(/usr/bin/pbpaste)\""' 
   return 0 
} 

newincmd ls 

newincmd echo "hello \" world" 
newincmd echo $'hello \' world' 

см .: codenippets.joyent.com/posts/show/1516

3
ответ дан 24 November 2019 в 08:14
поделиться

Вы также можете вызвать функцию новой команды Терминала, нажав комбинацию клавиш Shift + ⌘ + N . Команда, введенная вами в поле, будет запущена в новом окне терминала.

0
ответ дан 24 November 2019 в 08:14
поделиться

Я уже давно пытался это сделать. Вот сценарий, который переходит в тот же рабочий каталог, запускает команду и закрывает окно терминала.

#!/bin/sh 
osascript <<END 
tell application "Terminal"
    do script "cd \"`pwd`\";$1;exit"
end tell
END
32
ответ дан 24 November 2019 в 08:14
поделиться
Другие вопросы по тегам:

Похожие вопросы: