-1
#!/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
4

3 回答 3

4

该脚本将在当前文件夹(即您启动它的文件夹,而不是存储它的文件夹)中查找文件。

试试这个代码:

#!/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"
于 2013-01-10T16:22:10.463 回答
1

运行脚本时,用户名文件需要位于当前目录中 - 将其与脚本放在同一目录中只会在您从该目录调用脚本时起作用。

如果您希望能够从任何地方调用该脚本,您应该在最后一行使用完整路径。

于 2013-01-10T16:20:55.060 回答
0

尝试使用

./usernames.lnk

代替

usernames.lnk
于 2013-01-10T16:19:40.823 回答