Проблема с командами запуска в оболочке (bash) с аргументами в качестве переменных! - PullRequest
1 голос
/ 12 октября 2010

(Извините за путаницу. Предыдущий знак $ произошел, когда я попытался упростить реальную проблему. Спасибо за исправление вопроса)

Я хотел разделить имя каталога на подчеркивания (например: dir_to_split = "my_test_dir") вот так:

my_dir=($dir_to_split)
var=$(echo $my_dir | awk -F"_" '{print $1,$2,$3}')   
set -- $var

splited_1=$1
splited_2=$2
splited_3=$3

теперь использование этих splited_x вызывает у меня ошибки.пример.

myprograme $splited_1 $splited_2 $splited_3

Может кто-нибудь помочь мне с этим?Спасибо ....

1 Ответ

1 голос
/ 12 октября 2010

(переписано после обновленного вопроса.)

Какие ошибки вы получаете?Я считаю полезным добавлять set -x в начало моих сценариев оболочки при отладке, это позволяет оболочке печатать все команды, которые она выполняет, чтобы вы могли точно определить строку, где начинаются проблемы.

Вы уверены, что $dir_to_split на самом деле установлен?Содержит ли он пробелы или табуляции?Содержит ли он два подчеркивания?Сейчас я не вижу никаких других проблем.

Существуют методы разделения переменной в оболочке, такие как:

dir="my_test_dir"
OIFS="$IFS"
IFS="-"
set --
IFS="$OIFS"

См. Также этот вопрос SO .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...