Почему tmux портит мой вход в систему Ubuntu, хотя он работает, хорошо когда-то вошел в систему для новых окон?

Новые строки без кавычек в командных строках обрабатываются как места; Вот почему вы можете говорить такие вещи, как

command1  &&
command2

Ну, иногда новые строки без кавычек обрабатываются как точки с запятой. Но когда вы говорите

echo `cat ${log}`

все новые строки в файле журнала превращаются в места. Вы могли бы исправить это, сказав

echo "`cat ${log}`"

, но почему бы просто не сказать

cat ${log}

?

-121--114423-

В вашем примере запутанные команды создания сценариев оболочки. Вы должны обратить особое внимание на то, какой язык сценариев вы используете, а затем придерживаться синтаксиса его команд. В вашем примере вы используете turbo C shell (tcsh), однако затем вы смешиваетесь в командах и синтаксисах Bash/Bourne shell.

Если действительно требуется tcsh , можно использовать следующий подход. Предположим, что у меня был пример файла:

$ cat afile 
1
2
3
4
5

И этот сценарий:

$ cat cmd.csh 
#!/bin/tcsh

foreach i (`cat afile`) 
  echo "$i" 
end

Выполнение этого файла приведет к следующим выводам:

$ ./cmd.csh
1
2
3
4
5

Для выполнения задачи можно добавить команду mkdir после echo :

$ cat cmd1.csh 
#!/bin/tcsh

foreach i (`cat afile`) 
  echo "making directory: $i" 
  mkdir "$i"
end

Теперь, когда мы запускаем его:

$ ./cmd1.csh 
making directory: 1
making directory: 2
making directory: 3
making directory: 4
making directory: 5

В результате создаются каталоги:

$ ls -l
total 32
drwxrwxr-x. 2 saml saml 4096 Oct 16 18:58 1
drwxrwxr-x. 2 saml saml 4096 Oct 16 18:58 2
drwxrwxr-x. 2 saml saml 4096 Oct 16 18:58 3
drwxrwxr-x. 2 saml saml 4096 Oct 16 18:58 4
drwxrwxr-x. 2 saml saml 4096 Oct 16 18:58 5
-rw-rw-r--. 1 saml saml   11 Oct 16 18:47 afile
-rwxrwxr-x. 1 saml saml   86 Oct 16 18:56 cmd1.csh
-rwxrwxr-x. 1 saml saml   55 Oct 16 18:51 cmd.csh

-121--167050-

Создайте файл /etc/mk.conf со следующим:

WRKOBJDIR=/home/foo/build/ports
DISTDIR=/home/foo/build/distfiles
PACKAGE_REPOSITORY=/home/foo/packages

Путь может быть в любое место, поэтому, очевидно, замените /home/foo на нужный каталог. Нет необходимости создавать каталоги; они будут созданы автоматически при выполнении make .

Это рассматривается в FAQ: 15,3,3 - Конфигурация системы портов , с предлагаемым вариантом использования этого для создания дерева портов «только для чтения», так что/usr/ports могут находиться на диске/файловой системе «только для чтения», и вы по-прежнему можете строить из него, но, очевидно, все еще работает как обходной путь для любой ситуации, когда вы не можете записать в/usr/ports.

1
28.02.2015, 17:49
1 ответ

В настоящее время, как я не нашел фактического исправления, мой временный обходной путь не вызывает TMUX в моем .Bashrc.

Я создал псевдоним t t t t t t t , чтобы я открыл окно терминала, я могу просто ввести t [return] , чтобы включить TMUX для этого сеанса.

0
28.01.2020, 01:45

Теги

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