gpt4 book ai didi

linux - 更好的 bash 脚本将每行文件的两个条目读入两个变量

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:34:52 25 4
gpt4 key购买 nike

在 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/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com