用于将磁盘添加到fstab的脚本(如果不存在)

时间:2015-09-25 08:37:57

标签: bash path grep

首先,我阅读了许多帖子(见下文),if-clauses在文件中搜索特定字符串,并按照这些帖子1到1进行操作,但是我无法让我的脚本工作。如果它还不存在,我想在/etc/fstab中输入一个条目:

#!/bin/bash
fstab=/etc/fstab

if grep -q "poky-disc" "$fstab"
then
    echo "#poky-disc" >> /etc/fstab
    echo "/dev/sdb1 /media/poky ext4 defaults 0 2" >> /etc/fstab
else
    echo "Entry in fstab exists."
fi

提前感谢您的帮助。这些是类似的帖子,它们对我没有任何帮助:

4 个答案:

答案 0 :(得分:1)

#!/bin/bash
fstab=/etc/fstab

if [[ $(grep -q "poky-disc" "$fstab") ]]
# forgiving me for being a bit of over-rigorous, you might want to change this matching word, as below, 'poky-disc' merely a comment, not exactly a config line, so
then
    echo "#poky-disc" >> /etc/fstab
    echo "/dev/sdb1 /media/poky ext4 defaults 0 2" >> /etc/fstab
else
    echo "Entry in fstab exists."
fi

答案 1 :(得分:0)

优雅而简短的方式:

#!/bin/bash
if ! grep -q 'init-poky' /etc/fstab ; then
    echo '# init-poky' >> /etc/fstab
    echo '/dev/sdb1    /media/poky    ext4    defaults    0    2' >> /etc/fstab
fi

它使用本地Bash命令退出代码($?= 0表示成功,> 0表示错误代码),如果grep产生错误,表示未找到,它将对结果进行反(!),并添加fstab条目。

答案 2 :(得分:0)

这是一个简单的希望是惯用的解决方案。

g = d.groupby(['name', 'col2'])['col3'].cumcount()

d = (d.set_index(['name', 'col2', g])['col3']
     .unstack(1)
     .reset_index(level=1, drop=True)
     .reset_index()
     .rename_axis(None, axis=1))
print (d)
  name acct1 law
0  bil     a   b
1  bil     c   d
2  jim     e   f
3  jim     g   h

如果从grep -q 'init-poky' /etc/fstab || printf '# init-poky\n/dev/sdb1 /media/poky ext4 defaults 0 2\n' >> /etc/fstab 退出的状态是grep -q,请执行falseprintf的速记可以拼写为

||

许多初学者并没有意识到if grep -q 'ínit-poky' /etc/fstab; then : nothing else printf ... fi 的参数是一个命令,其退出状态确定将采用if分支还是then分支。

答案 3 :(得分:0)

我有同样的问题。我设法使用以下命令对其进行了编辑:

import React from 'react'
import ReactDataSheet from 'react-datasheet'

import EditorDialog from './EditorDialog'

export default class Datasheet extends React.Component {
  constructor(props) {
    super(props)

    this.state = {
      editorProps: null,
      grid: [[{ value: 1 }, { value: 3 }], [{ value: 2 }, { value: 4 }]]
    }
  }

  handleDataEditor: Function = editorProps => {
    this.setState({ editorProps })

    if (!editorProps) {
      return null
    }

    return <span>{editorProps.value}</span>
  }

  render() {
    return (
      <>
        <ReactDataSheet
          data={this.state.grid}
          // ...
          dataEditor={this.handleDataEditor}
        />
        <EditorDialog {...editorProps} onClose={this.handleDataEditor} />
      </>
    )
  }
}