1

我正在学习一个基本的操作系统课程,并获得了如下的分配: “编写一个 shell 脚本,将文件从当前文件夹移动到一个称为备份的子文件夹。它应该接受源和目标作为参数“

我写了一个脚本如下:

if [ $# -eq 2 ]; then
 if ! [[ -f "$1" ]]; then
  echo Error: The file $1 was not found.
  exit 1
fi
else
  echo Error: Check syntax or number of arguments
  echo Correct use: $0 [source] [destination]
  exit 1
fi

echo Copying file $1 to $2/backup/$1
mkdir $2
mkdir $2/backup
cp $1 $2/backup

我已经在 W7 上的 Cygwin 上对此进行了测试,因为我目前无法访问 linux 环境(我们通常通过 SSH 连接到远程服务器,但由于某种原因它已关闭)并且它适用于检查号码的前两个要求参数传递和文件未找到。我已经进行了一些搜索,但不幸的是,对于如何执行限制用户执行的最后一部分,我完全一无所知——这就是我需要帮助的地方。

我更感兴趣的是学习它是如何完成的,以及为什么它以这种方式完成,而不是代码本身,所以如果可能的话,我将非常感谢广泛的解释。

谢谢

4

1 回答 1

2

您可以使用环境变量 $USER 来检查您自己的用户名

if [ "$USER" != "allowed_username" ]; then
  echo 'Access denied'
  exit 1
fi
于 2013-07-08T19:10:23.190 回答