小编mic*_*con的帖子

如何在bash中将文件内容作为多个参数传递

我有一个文件,其中包含随时间更新的数据 (mydata)。该文件如下所示:

1 2 3
Run Code Online (Sandbox Code Playgroud)

有了这个文件,我想这样做(基本上将每个数字作为单独的参数处理):

myscript.sh 1 2 3
Run Code Online (Sandbox Code Playgroud)

由于数据不是静态的而是随着时间的推移更新,我想运行这个命令:

myscript.sh "$(cat mydata)"
Run Code Online (Sandbox Code Playgroud)

但是我看到 ./myscript.sh: line 1: 1: command not found

我该怎么办?

bash parameter shell-script

6
推荐指数
2
解决办法
1万
查看次数

使用 bash 解析字符串标记

我有这个输出(来自上一个命令):

aaa         something
bbb         someother
ccc         blabla
Run Code Online (Sandbox Code Playgroud)

对于每一行,我想创建一个文件,其名称是第一个标记,其内容是第二个标记(例如,对于第一行,我想要一个名为“aaa”的文件,其中包含文本“something”)

我该怎么做?

bash shell-script text-processing files

4
推荐指数
1
解决办法
2963
查看次数

如何在bash函数上传递字符串参数?

我有这个有效的代码:

get_parameter ()
{
   echo "$query" | sed -n 's/^.*name=\([^&]*\).*$/\1/p' | sed "s/%20/ /g"
}
Run Code Online (Sandbox Code Playgroud)

但我想用我传递给 get_parameter 的参数替换“名称”

get_parameter ()
{
   echo "$query" | sed -n 's/^.*$1=\([^&]*\).*$/\1/p' | sed "s/%20/ /g"
}
NAME=$( get_parameter name )
Run Code Online (Sandbox Code Playgroud)

然而,这不起作用。我哪里错了?

bash parameter string function

3
推荐指数
1
解决办法
1万
查看次数

挂载后 md5sum 更改?

我在 .img 文件上有一个 ext3 文件系统。挂载和卸载后,我注意到 md5sum 发生了变化,即使里面没有文件被更改!

md5sum myfilesystem.img
XXXX myfilesystem.img
mount -t ext3 myfilesystem.img temp/
umount temp/
md5sum myfilesystem.img
YYYY myfilesystem.img
Run Code Online (Sandbox Code Playgroud)

为什么 XXXX 与 YYYY 不同?我显然没有触及 myfilesystem.img 中的任何内容。

filesystems mount ext3 hashsum

3
推荐指数
1
解决办法
346
查看次数

如何在 bash 命令中嵌套引号

我想测试这个命令的结果:

dmesg | grep "Firmware patch 1563"
Run Code Online (Sandbox Code Playgroud)

因此,我尝试写这样的东西:

if [ "`dmesg | grep "Firmware patch 1563`" == "" ]
Run Code Online (Sandbox Code Playgroud)

但它不起作用。我应该如何重写这个命令?

shell bash quoting

3
推荐指数
1
解决办法
3596
查看次数

EOF 阻止了我的脚本?

我有这个脚本(它实际上是一个更大脚本的片段)。

#!/bin/sh

 if [ $actualsize -ge $MAXSIZE ]; then
  read dummy FILEPOINT <<EOF
  `dd if=myfile skip=8001 count=1 bs=1|od -x`
  EOF
 fi
Run Code Online (Sandbox Code Playgroud)

当我运行它时,我得到

./bugged.sh: 9: Syntax error: end of file unexpected (expecting "fi")
Run Code Online (Sandbox Code Playgroud)

显然,问题是“EOF”。为什么会发生这种情况,我如何才能获得相同的结果(从 myfile 中读取)?

bash shell-script here-document

2
推荐指数
1
解决办法
1411
查看次数