os.system () выполняют команду под который оболочка Linux?

Используйте следующие строки кода

NSString *str_test = @"Example ";
NSCharacterSet *whitespaceSet = [NSCharacterSet whitespaceCharacterSet];
if([str_test rangeOfCharacterFromSet:whitespaceSet].location!=NSNotFound)
{
    NSLog(@"Found");
}

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

- (BOOL)textField:(UITextField *)textField shouldChangeCharactersInRange:(NSRange)range replacementString:(NSString *)string
{
    if([string isEqualToString:@" "])
    {
        return NO
    }
    else
    {
        return YES
    }
}
9
задан limi 25 May 2009 в 03:30
поделиться

3 ответа

os.system () просто вызывает системный вызов system () (" система человек 3 "). В большинстве * nix это означает, что вы получаете / bin / sh .

Обратите внимание, что export VAR = val технически не является стандартным синтаксисом (хотя bash понимает его , и я думаю, ksh тоже). Он не будет работать в системах, где / bin / sh на самом деле является оболочкой Борна. В этих системах вам нужно экспортировать и установить как отдельные команды. (Это также будет работать с bash .)

5
ответ дан 4 December 2019 в 08:16
поделиться

These days you should be using the Subprocess module instead of os.system(). According to the documentation there, the default shell is /bin/sh. I believe that os.system() works the same way.

Edit: I should also mention that the subprocess module allows you to set the environment available to the executing process through the env parameter.

9
ответ дан 4 December 2019 в 08:16
поделиться

Если ваша команда является файлом оболочки, и файл является исполняемым, и файл начинается с "#!", Вы можете выбрать свою оболочку.

#!/bin/zsh
Do Some Stuff

Вы можете записать этот файл, а затем выполните его с помощью subprocess.Popen (filename, shell = True) , и вы сможете использовать любую оболочку, которую захотите.

Также не забудьте прочитать this о os.system и subprocess.Popen .

2
ответ дан 4 December 2019 в 08:16
поделиться
Другие вопросы по тегам:

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