嗨,我尝试简化我的问题,
我正在尝试编写一个 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//
现在我有点困惑。有人知道如何解决这个问题吗?
感谢您的任何建议
保罗
答案1
你的任务
name_on_scratch= "basename" "$PWD"
格式不正确:basename
是一个命令,因此你需要命令替换使用反引号或$(...)
语法。此外,运算符周围不能有空格=
:
name_on_scratch="$(basename "$PWD")"
答案2
您应该确保 $jobid 有一个可以用作目录名的值。