在 CentOS linux 上,我有包含以下条目的 /etc/fstab
:
/dev/dsk/xfsvold00 /mnt/00vol xfs defaults 0 2
/dev/dsk/xfsvold01 /mnt/01vol xfs defaults 0 2
/dev/dsk/xfsvold02 /mnt/02vol xfs defaults 0 2
/dev/dsk/xfsvold03 /mnt/03vol xfs defaults 0 2
/dev/dsk/xfsvold04 /mnt/04vol xfs defaults 0 2
/dev/dsk/xfsvold05 /mnt/05vol xfs defaults 0 2
/dev/dsk/xfsvold06 /mnt/06vol xfs defaults 0 2
我正在开发一个用于挂载文件系统的 bash 脚本。我在尝试
将 /etc/fstab
中每一行的前两个条目放入两个变量中
并在安装中使用这些变量。例如,我需要:
dev/dsk/xfsvold00 /mnt/00vol
dev/dsk/xfsvold01 /mnt/01vol
dev/dsk/xfsvold02 /mnt/02vol
dev/dsk/xfsvold03 /mnt/03vol
我有以下工作原型(prototype)代码。
mountall() {
# TODO: find a neat trick to get mntvol and mntpt.
cat /etc/fstab | grep xfs > /tmp/tmpfstab
while read mntvol mntpt var3; do
mount -t xfs $mntvol $mntpt;
rc=$?
[ $rc -ne 0 ] && return $rc || echo "mount successful on $mntpt"
done < /tmp/tmpfstab
/bin/rm -rf /tmp/tmpfstab
}
有没有更好的实现方式?任何指针或提示表示赞赏。谢谢。
最佳答案
基于 @tripleee和 @Jahid (谢谢你们),对文件系统类型进行稍微严格检查的代码:
mountall () {
awk '$3=="xfs"' /etc/fstab |
while read -r mntvol mntpt var3; do
mount -t xfs $mntvol $mntpt &&
echo "mount successful on $mntpt" ||
echo "mount failed on $mntpt"
done
}
关于linux - 更好的 bash 脚本将每行文件的两个条目读入两个变量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37267704/