Bash 脚本在 运行 时抛出 "missing operand" 的错误
Bash script is throwing the error of "missing operand" when ran
我是 bash 的新手,正在尝试接受 2 个参数,参数 1 是复制文件所在的新目录的名称。参数 2 是要复制的文件。参数 3 是新文件的名称。但是,当 运行 时,我不断收到 mkdir 缺少操作数错误消息。感谢您的帮助!!
#!/bin/bash
dir=
oldFile=
newFile=
mkdir $dir
cp $dir
cd $dir
mv
全新,此版本涵盖所有案例...
#!/bin/bash
# Verify number of arguments
if [[ $# -ne 3 ]]
then
echo "Missing arguments."
echo "1: new directory name"
echo "2: existing file to copy in the directory"
echo "3: new filename"
exit 1
fi
# Verify arguments values
dir=""
if [[ -d "$dir" ]]
then
echo "Directory $dir already exists. Cannot proceed."
exit 2
fi
oldfile=""
if [[ ! -f "$oldfile" ]]
then
echo "The second arguments must be an existing file. Cannot procees."
exit 3
fi
newfile=""
# no check to do here.
# Create the directory
mkdir "$dir"
if [[ ! -d "$dir" ]]
then
echo "ERROR: directory $dir could not be created. Aborting."
exit 4
else
echo "INFO: created directory $dir"
fi
# Copy the file into the directory, with the new name
cp "$oldfile" "$dir/$newfile"
if [[ ! -f "$dir/$newfile" ]]
then
echo "ERROR: the existing file ($oldfile) could not be copied and renamed ($newfile)."
exit 5
else
echo "INFO: the existing file ($oldfile) was copied and renamed ($newfile) in the $dir directory."
fi
这个脚本:
- 验证参数个数是否正确
- 验证目录是否已经存在
- 验证旧文件确实存在
- 验证文件的目录创建和复制重命名已成功完成
记得:
- 总是
"
你的变量
- 始终检查脚本命令的状态,您永远不知道在所有情况下会发生什么
- 对
rm
、mv
要超级谨慎,如果你有意想不到的行为,你可以放手。
调用脚本:
./thescript.bash newdirectory oldfilename newfilename
它将为您提供文件目录结构:
$ ls
oldfile
newdirectory/newfilename
我是 bash 的新手,正在尝试接受 2 个参数,参数 1 是复制文件所在的新目录的名称。参数 2 是要复制的文件。参数 3 是新文件的名称。但是,当 运行 时,我不断收到 mkdir 缺少操作数错误消息。感谢您的帮助!!
#!/bin/bash
dir=
oldFile=
newFile=
mkdir $dir
cp $dir
cd $dir
mv
全新,此版本涵盖所有案例...
#!/bin/bash
# Verify number of arguments
if [[ $# -ne 3 ]]
then
echo "Missing arguments."
echo "1: new directory name"
echo "2: existing file to copy in the directory"
echo "3: new filename"
exit 1
fi
# Verify arguments values
dir=""
if [[ -d "$dir" ]]
then
echo "Directory $dir already exists. Cannot proceed."
exit 2
fi
oldfile=""
if [[ ! -f "$oldfile" ]]
then
echo "The second arguments must be an existing file. Cannot procees."
exit 3
fi
newfile=""
# no check to do here.
# Create the directory
mkdir "$dir"
if [[ ! -d "$dir" ]]
then
echo "ERROR: directory $dir could not be created. Aborting."
exit 4
else
echo "INFO: created directory $dir"
fi
# Copy the file into the directory, with the new name
cp "$oldfile" "$dir/$newfile"
if [[ ! -f "$dir/$newfile" ]]
then
echo "ERROR: the existing file ($oldfile) could not be copied and renamed ($newfile)."
exit 5
else
echo "INFO: the existing file ($oldfile) was copied and renamed ($newfile) in the $dir directory."
fi
这个脚本:
- 验证参数个数是否正确
- 验证目录是否已经存在
- 验证旧文件确实存在
- 验证文件的目录创建和复制重命名已成功完成
记得:
- 总是
"
你的变量 - 始终检查脚本命令的状态,您永远不知道在所有情况下会发生什么
- 对
rm
、mv
要超级谨慎,如果你有意想不到的行为,你可以放手。
调用脚本:
./thescript.bash newdirectory oldfilename newfilename
它将为您提供文件目录结构:
$ ls
oldfile
newdirectory/newfilename