Привет. Я пытаюсь упростить мою проблему.
Я пытаюсь написать bash-скрипт, который может взять фактическое имя каталога (как вы получаете с помощью выражения «basename») и создать тот же каталог. на пустом месте.
#!/bin/bash
#variables
name_on_scratch= "basename" "$PWD"
echo $name_on_scratch
home=`pwd`
workdir=/gpfs/scratch/$USER/$name_on_scratch/
rm -rf $workdir 2>/dev/null # delete if exist
#make a dir on scratch
mkdir $workdir
echo $workdir
echo $name_on_scratch
Проблема в том, что я получаю сообщение об ошибке:
mkdir: cannot create /gpfs/scratch/upolpnam//.
/gpfs/scratch/upolpnam//: File exists
/gpfs/scratch/upolpnam//
Теперь я немного застрял. Кто-нибудь знает, как обойти это.
Спасибо за любые предложения.
Пол
.Ваше присвоение
name_on_scratch= "basename" "$PWD"
неправильно формируется: basename
команда, таким образом, Вам нужно замена команды использование или обратные галочки или $(...)
синтаксис. Также это не может иметь пространства вокруг =
оператор:
name_on_scratch="$(basename "$PWD")"
Необходимо удостовериться, что $jobid имеет значение, которое может использоваться в качестве имени каталога.