Я столкнулся с небольшой проблемой здесь, я хочу передать строку, содержащую пробелы, в другую программу, так что вся строка рассматривается как аргумент командной строки.Сохранение пробелов в строке в качестве аргумента командной строки
Короче говоря, я хочу, чтобы выполнить команду следующей структуры через сценарий оболочки Bash: command_name -a -b arg1 arg2 -c «арг с непечатаемыми здесь»
Но независимо от того, как я стараюсь, то пробелы не сохраняются в строке и по умолчанию отмечены. Решение пожалуйста,
редактировать: Это главная часть моего сценария:
#!/bin/bash
#-------- BLACKRAY CONFIG ---------------#
# Make sure the current user is in the sudoers list
# Running all instances with sudo
BLACKRAY_BIN_PATH='/opt/blackray/bin'
BLACKRAY_LOADER_DEF_PATH='/home/crozzfire'
BLACKRAY_LOADER_DEF_NAME='load.xml'
BLACKRAY_CSV_PATH='/home/crozzfire'
BLACKRAY_END_POINT='default -p 8890'
OUT_FILE='/tmp/out.log'
echo "The current binary path is $BLACKRAY_BIN_PATH"
# Starting the blackray 0.9.0 server
sudo "$BLACKRAY_BIN_PATH/blackray_start"
# Starting the blackray loader utility
BLACKRAY_INDEX_CMD="$BLACKRAY_BIN_PATH/blackray_loader -c $BLACKRAY_LOADER_DEF_PATH/$BLACKRAY_LOADER_DEF_NAME -d $BLACKRAY_CSV_PATH -e "\"$BLACKRAY_END_POINT\"""
sudo time $BLACKRAY_INDEX_CMD -a $OUT_FILE
#--------- END BLACKRAY CONFIG ---------#
Извините, но вы предоставили слишком мало информации. Какую оболочку вы используете (bash, ksh, csh, ...)? Можете ли вы сказать, какую команду вы пытаетесь выполнить? Если это стандартная утилита UNIX, можете ли вы сказать ее версию? –
скрипт bash. Хорошо, вот что я пытаюсь сделать: .... BLACKRAY_END_POINT = "по умолчанию -p 8890" .... CMD = "$ BLACKRAY_BIN_PATH/blackray_loader -c $ BLACKRAY_LOADER_DEF_PATH/$ BLACKRAY_LOADER_DEF_NAME -d $ BLACKRAY_CSV_PATH - e \ "$ BLACKRAY_END_POINT \" " ... Теперь я хочу выполнить указанную выше команду таким образом, чтобы $ BLACKRAY_END_POINT обрабатывался как одна строка и не получил токенизацию. $ BLACKRAY_END_POINT - это строка, содержащая пробелы, а bash разбивает ее на разные слова. Я хочу сохранить пробелы и передать всю строку в виде одного аргумента. – crozzfire
Неизвестно, встретить обратную косую черту-двойную кавычку (\ ") .Краса обратной косой черты, встречаться неизвестно. –