Использование вывода выражения Python в операторе if

Вы можете сделать это, сказав xterm распечатать данные, используяprint-everythingдействие (, обычно не связанное с клавишей ).

В качестве альтернативы существует escape-последовательность, описанная в XTerm Control Sequences :

.

CSI ? Pm i                                                                      
          Media Copy (MC), DEC-specific.                                        
            Ps = 1  -> Print line containing cursor.                            
            Ps = 4  -> Turn off autoprint mode.                                 
            Ps = 5  -> Turn on autoprint mode.                                  
            Ps = 1  0  -> Print composed display, ignores DECPEX.               
            Ps = 1  1  -> Print all pages.

, который можно вызвать как

printf '\033[?11i'

Но любой подход (для записи в файл )потребует настройки команды принтера .

0
06.03.2020, 14:52
1 ответ

Поскольку $(python3 -c "print('$1')")является строкой, не является логическим значением, а [... ]просто проверяет, не является ли строка -пустой.

Чтобы все работало так, как вы ожидаете, измените тест на

if [ "$(python3 -c "print('$1')")" = "True" ]

Кстати, вам следует избегать использования testв качестве имени вашей функции (s ), так как это будет маскировать встроенную оболочку test.

2
28.04.2021, 23:21

Теги

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