Как я могу предотвратить удаление кавычки при использовании $ * в скрипте csh - PullRequest
0 голосов
/ 30 января 2020

У меня есть сценарий csh, который является оболочкой для отправки сценария python в механизм сетки. Это работает, пока я не использую аргумент, содержащий кавычки.

Сценарий csh 'my. csh выглядит следующим образом:

#!/bin/csh -f
<grid command> my_script.py $*

my_script.py выглядит следующим образом:

#!<path>/python3.6
from argparse import ArgumentParser

def setup_arg_parser():
    parser = ArgumentParser()
    parser.add_argument('-argument',help='Just an example.')
    args = parser.parse_args()
    return args

if __name__ == '__main__':
    args = setup_arg_parser()
    print (args)

Когда вы вызываете my. csh следующим образом, он отлично работает

%> my.csh -argument \"-anything -is -fine\"

, но когда я делаю фолдинг, кавычки будут удаляется, и анализатор аргументов python сообщает об ошибке.

%> my.csh -argument "-this -does_not -work"

Есть ли способ предотвратить это без экранирования кавычек? Мне нужен способ предоставить кавычки для следующего скрипта, здесь это скрипт python.

...