我有函数的 scrip:
mount_share () {
mkdir /data
echo //$STORAGE_NAME.file.core.windows.net/$STORAGE_SHARE /data cifs vers=3.0,username=$STORAGE_NAME,password=$STORAGE_KEY,dir_mode=0755,file_mode=0644,serverino >> /etc/fstab
mount -a
}
执行后 -mount
返回一个错误:
root@xx255rs2sptry000001:~# mount -a
mount: /etc/fstab: parse error: ignore entry at line 9.
如果我尝试手动sed
,则会出现相同的错误:
root@xx255rs2sptry000001:~# STORAGE_NAME=ggg
root@xx255rs2sptry000001:~# STORAGE_KEY=sakey
root@xx255rs2sptry000001:~# STORAGE_SHARE=sashare
root@xx255rs2sptry000001:~# echo //$STORAGE_NAME.file.core.windows.net/$STORAGE_SHARE /data cifs vers=3.0,username=$STORAGE_NAME,password=$STORAGE_KEY,dir_mode=0755,file_mode=0644,serverino >> /etc/fstab
root@xx255rs2sptry000001:~# cat /etc/fstab
# CLOUD_IMG: This file was created/modified by the Cloud Image build process
UUID=e990f8b3-1d6b-4615-8280-8ead4ed2fe7c / ext4 defaults,discard 0 0
# CLOUD_IMG: This file was created/modified by the Cloud Image build process
# The following is used to dynamically configured additional
# NICs. Do not remove unless you know what you are doing.
none /etc/network/interfaces.dynamic.d tmpfs nodev,noexec,nosuid,size=64K 0 0
/dev/disk/cloud/azure_resource-part1 /mnt auto defaults,nofail,x-systemd.requires=cloud-init.service,comment=cloudconfig 0 2
//ggg.file.core.windows.net/sashare /data cifs vers=3.0,username=ggg,password=sakey,dir_mode=0755,file_mode=0644,serverino
root@xx255rs2sptry000001:~# mount -a
mount: /etc/fstab: parse error: ignore entry at line 9.
我试图关闭"中的变量 - 但没有运气:
echo "//$STORAGE_NAME.file.core.windows.net/$STORAGE_SHARE /data cifs vers=3.0,username=$STORAGE_NAME,password=$STORAGE_KEY,dir_mode=0755,file_mode=0644,serverino" >> /etc/fstab
echo //"$STORAGE_NAME".file.core.windows.net/"$STORAGE_SHARE" /data cifs vers=3.0,username="$STORAGE_NAME",password="$STORAGE_KEY",dir_mode=0755,file_mode=0644,serverino >> /etc/fstab
等等。
/etc/fstab
中的条目看起来绝对正确,但是...
我在这里做错了什么?
如果手动添加挂载条目,有vim
和没有变量 - 一切正常。
Azure 文件共享文档 - 此处。
使用:
cat -v /etc/fstab
这将显示导致任何问题的任何虚假字符。