上周我一直试图让它工作,但无法弄清楚为什么这不起作用。我直接在终端中输入混合结果,但从 .sh 运行时不断收到语法错误消息。使用 Ubuntu 11.10
看起来 mount 命令的一部分被推到下一行,不允许它正确完成。我不知道为什么会发生这种情况,也不知道如何防止它进入第二行。
我在 mounts.txt 中有几行定义如下,从下面的 mount-drives.sh 中读取
我已经使用 sudo 调用它来运行它,所以它不应该是权限问题。
感谢您查看,如果需要其他信息,请告诉我。
mounts.txt
mountname,//server/share$,username,password,
mount-drives.sh ---原始,更新如下
#!/bin/bash
while read LINE;
do
# split lines up using , to separate variables
name=$(echo $LINE | cut -d ',' -f 1)
path=$(echo $LINE | cut -d ',' -f 2)
user=$(echo $LINE | cut -d ',' -f 3)
pass=$(echo $LINE | cut -d ',' -f 4)
echo $name
echo $path
echo $user
echo $pass
location="/mnt/test/$name/"
if [ ! -d $location ]
then
mkdir $location
fi
otherstuff="-o rw,uid=1000,gid=1000,file_mode=0777,dir_mode=0777,username=$user,password=$pass"
mount -t cifs $otherstuff $path $location
done < "/path/to/mounts.txt";
mount-drives.sh ---更新
#!/bin/bash
while read LINE
do
name=$(echo $LINE | cut -d ',' -f 1)
path=$(echo $LINE | cut -d ',' -f 2)
user=$(echo $LINE | cut -d ',' -f 3)
pass=$(echo $LINE | cut -d ',' -f 4)
empty=$(echo $LINE | cut -d ',' -f 5)
location="/mount/test/$name/"
if [ ! -d $location ]
then
mkdir $location
fi
mounting="mount -t cifs $path $location -o username=$user,password=$pass,rw,uid=1000,gid=1000,file_mode=0777,dir_mode=0777"
$mounting
echo $mounting >> test.txt
done < "/var/www/MediaCenter/mounts.txt"