Вы можете получить близко к результату, вы видите, если вы измените настройку МФС, межбюджетные-разделители полей:
$ set -- "/abc/def/ghi" "jkl" "mno pqr/stu vwx"
$ print "%s\n" "[email protected]"
abc/def/ghi
jkl
mno pqr/stu vwx
$ echo "[email protected]"
abc/def/ghi jkl mno pqr/stu vwx
$ IFS=/
$ echo [email protected]
abc def ghi jkl mno pqr stu vwx
$ IFS=$' \t\n'
$
Это не работает слова вместе, но это не потерять слэш. Чтобы лучше диагностировать вашу проблему, вам нужно будет предоставить больше кода в вашем скрипте.
Независимо от вопроса с исчезающими косыми чертами, если вам нужно сохранить аргументы, вы действительно должны использовать:
args=("[email protected]")
Это сохраняет имена файлов в массив, сохраняя имена отдельно и правильно обрабатывать пространства. Вы можете получить доступ отдельных имен файлов, используя индексы, начиная с 0:
echo "${args[1]}"
echo "${args[@]}"
for file in "${args[@]}"; do ...; done
Обозначения, используемым в этом вопросе является:
args=$*
[email protected]
Это как сохранить имена файлов в одну строку с пробелами, разделяющими оригинальные имена. Это нельзя надежно разделить на оригинальные имена файлов, если в исходных именах файлов есть пробелы. В большинстве случаев это не то, что вы хотите.
слезы (/) или обратная косая черта (\\)? – coelhudo
Я имел в виду косые черты "/" – Emad
Как вы его пытаетесь использовать? –