我有一个文件,其中包含随时间更新的数据 (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
我该怎么办?
我有这个输出(来自上一个命令):
aaa something
bbb someother
ccc blabla
Run Code Online (Sandbox Code Playgroud)
对于每一行,我想创建一个文件,其名称是第一个标记,其内容是第二个标记(例如,对于第一行,我想要一个名为“aaa”的文件,其中包含文本“something”)
我该怎么做?
我有这个有效的代码:
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)
然而,这不起作用。我哪里错了?
我在 .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 中的任何内容。
我想测试这个命令的结果:
dmesg | grep "Firmware patch 1563"
Run Code Online (Sandbox Code Playgroud)
因此,我尝试写这样的东西:
if [ "`dmesg | grep "Firmware patch 1563`" == "" ]
Run Code Online (Sandbox Code Playgroud)
但它不起作用。我应该如何重写这个命令?
我有这个脚本(它实际上是一个更大脚本的片段)。
#!/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 中读取)?