#!/bin/bash
while read -r line; do
mkdir "UNIX/$line"
done < usernames.lnk
运行下面显示的脚本时出现此错误。我检查了任何拼写错误,但脚本和用户名文件都在同一个文件夹中,但它无法检测到该文件。
/home/user/Documents/New/taskscript.sh: line 4: usernames.lnk: No such file or directory
该脚本将在当前文件夹(即您启动它的文件夹,而不是存储它的文件夹)中查找文件。
试试这个代码:
#!/bin/bash
# Determine folder in which this script is stored
BASE=$( cd $( dirname "$0" ) > /dev/null ; pwd )
while read -r line; do
mkdir "UNIX/$line"
done < "$BASE/usernames.lnk"
运行脚本时,用户名文件需要位于当前目录中 - 将其与脚本放在同一目录中只会在您从该目录调用脚本时起作用。
如果您希望能够从任何地方调用该脚本,您应该在最后一行使用完整路径。
尝试使用
./usernames.lnk
代替
usernames.lnk