我有一个脚本.sh
,它创建一个目录并将一些文件移动到该目录。
我想将目录更改为刚刚创建的新目录,但它不适用于该命令
cd ./$dirname1${iloop}
$dirname1${iloop}
新目录的名称在哪里...我如何更改目录?
mkdir ./$dirname1${iloop}
`cp $in1 ./$dirname1${iloop}`
`cp $plot ./$dirname1${iloop}`
`cp $tmpl1 ./$dirname1${iloop}`
`cp $in2 ./$dirname1${iloop}`
`cp $tmpl2 ./$dirname1${iloop}`
`cp $data ./$dirname1${iloop}`
`cd ./$dirname1${iloop}`
答案1
假设您按原样发布了脚本,则此命令:
`cd ./$dirname1${iloop}`
使用进程替换。蜱虫
`
前面和末尾是新类型中的旧语法$()
。虽然在替换内和未替换时复制文件都会产生持久的后果,但如果您cd
在进程替换或子 shell 中,则目录更改仅在该上下文中有效。回到基本 shell 后,您就回到了之前的位置。
从命令行比较这两个:
$(cd /bin) && pwd
和
cd /bin && pwd