我已经编写了shell脚本,它从输入文件中读取命令并执行命令。我有这样的命令:
cat linux_unit_test_commands | grep "dmesg"
在输入文件中。在执行shell脚本时,我收到下面的错误消息:
cat: |: No such file or directory
cat: grep: No such file or directory
cat: "dmesg": No such file or directory
剧本:
#!/bin/bash
while read line
do
output=`$line
我想问一下linux中的ftp连接,如何使用终端检查linux中的ftp匿名连接?我使用while循环读取vsftpd.conf文件,就像这样
while read line
do
if [ Anonymous_enable=YES ];
then echo " Accept connection"
elif [ Anonymous_enable=NO ];
then echo "Not Accept"
fi
done<vsftpd.conf
我在Linux和solaris下运行相同的脚本。下面是脚本:
#!/bin/sh
index=0
ls /tmp | grep e |
while read fileWithE
do
echo $fileWithE
index=`expr $index + 1`
done
echo "index is $index"
由于while循环在子while中运行,所以在solaris和linux中,我期望'index is 0‘作为输出。但是在solaris中,$index是/tmp下包含'e‘的文件的实际数量。那么,虽然循环不会在solaris下的
有人能让我知道如何读取某些数据的二进制文件并将数据写入shell脚本中的新二进制文件吗?我正在使用Linux。
注意:cat file1 > file2:不是必需的,因为这会写入完整的数据。
要求:读一些数据,写一遍,读一遍,写。
while read -n1 ch
do
cat $ch > $output # Tried this, showing error. While writing the data after reading, cat command throws error : No such file or directory.
我对BASH脚本比较陌生。我希望有人能帮忙。我有两个文件。文件1是包含某些服务器属性的.csv文件。
cmdb_ci_linux_server.csv
"CLS000","csl000","Linux SuSe","9","HP"
"CLS001","cls001","Linux SuSe","9","VMware, Inc."
"CLS002","cls002","Linux Red Hat
目前,我的任务是手动检查多个文件的内容。我在一个文本文件中列出了所有的文件,逐行(每一行末尾的换行符),目前我正在尝试编写一个bash脚本,它能够读取文本文件行,然后在nano中打开它们以供检查。当我在nano中打开它时会出现问题--我目前正在win10上作为一个子系统运行linux,所以我只有可用的终端。我现在的问题是,当我尝试这样做的时候:
Cat file | while read line; do nano “$line”; done
最小工作实例:
mkdir test
cd test
touch {a,v,c}
ls > file
Cat file | while rea
我使用的是Fedora2064位操作系统,但我对Android开发工具有点问题。当我尝试运行项目时,我遇到了以下错误:
[2014-05-11 22:08:03 - TestAp] /home/damian/adt-bundle-linux-x86_64-20140321/sdk/build-tools/android-4.4.2/aapt:
error while loading shared libraries: libstdc++.so.6: cannot open
shared object file: No such file or directory
[2014-05-11 2
我需要定义一个全局变量以供进一步参考。
这是我的密码
# .bashrc
LOCAL_CONF_DIR='/var/www/vhosts/vhost/test.conf'
cat ${LOCAL_CONF_DIR} | while read LINE
do
if [ "ServerName" == "${LINE:0:10}" ]; then
s=( $LINE )
SERVER_NAME=$s[1];
fi
done
echo $SERVER_NAME
不适用于我,RH
Perl程序使用IPC::Run通过在运行时确定的一系列命令将文件输送到另一个文件中,就像下面这个小测试节选所演示的:
#!/usr/bin/perl
use IO::File;
use IPC::Run qw(run);
open (my $in, 'test.txt');
my $out = IO::File->new_tmpfile;
my @args = ( [ split / /, shift ], "<", $in); # this code
while ($#ARGV >= 0) {
因此,我有一个在while(true)循环中运行的Linux程序,它等待用户输入,处理它并将结果打印到stdout。
我想写一个shell脚本来打开这个程序,输入txt文件中的行,一次一行,并将每行的程序输出保存到一个文件中。
所以我想知道有没有什么命令:
从程序中将文本 - open a programsend到processreceive输出
非常感谢。
编辑以删除不必要地使用"cat“命令.
我有一个Linux脚本,它从CSV文件中读取数据,并根据文件中每一行的最后一列执行操作。
输入文件具有以下基本格式:
asdf,foo
1234,foo
qwerty,bar
zxcv,baz
7890,bar
最初的Linux脚本如下所示:
sed s/.*,//g $1 | sort -u | while read item
do
# Do stuff with $item
done
我很难将Linux脚本转换为在Windows环境中运行,使用GnuWin32版本的cat、sed和sort。到目前为止,我尝试过的是:
for /f
我有下面的文件夹列表,名称中有两个单词,用空格分隔
WEB TEH
COMPUTER SCIENCE
UNIX LINUX
我会创建一个shell脚本,这个脚本可以浏览目录并从每个文件夹中提取第一个和第二个单词,
并将每一个提取的单词放入文本文件中(每个单词放在一行中)。
file1.txt包含:
WEB
COMPUTER
UNIX
而file2.txt包含:
TECH
SCIENCE
LINUX
谢谢
编辑:
我创建了这个脚本:
#!/bin/bash
# Read folder name and put it in file
read -p "Enter Your Path: &
我有一个模板文件(template.txt):
Hello, $x
Hello, $y
我有一个脚本文件(script.sh):
#!/bin/bash
$x=linux
$y=unix
# I want to include template.txt as a here-doc
如何将template.txt包含为here-doc of script.sh。
因此,当我运行script.sh时,输出应该是:
Hello, linux
Hello, unix
编辑:
我认为replace对我的工作来说是个很好的命令:
$ cat template.txt | replace '$x&
名为animals的原始文件如下所示:
dog
cat
dolphin
cat
这个命令通过将sed '/dog/i\ Linux Scripting' animals放在Linux Scripting之前来工作,我得到了以下内容:
Linux Scripting
dog
cat
dolphin
cat
然而,如果我做了动物头之后,文件是不变的。
$ head animals
dog
cat
dolphin
cat
如何以覆盖现有文件的方式执行此操作?
注意:用于多个文件,我希望animals与*.txt保持一致
我在工作中构建了一个简单的文本处理脚本,以供其他程序使用。当我完成时,有人记得脚本不需要阻止STDIN/STDOUT,因为工具使用它才能正常工作,并相应地修改了脚本。脚本通过cat在子进程中打开*nix的,并将STDIN打印到它,读取它,然后处理并打印到STDOUT。我不知道这如何使脚本非阻塞,但它显然是有效的。
我希望它也能在Windows上工作,所以我将cat改为type CON,这是一个简单的用于打印STDIN的Windows命令。下面是一个示例脚本:
use strict;
use warnings;
use IO::Handle;
use IPC::Open2;
my $comma
我需要从下面的代码中搜索字符串"-Xms“:
cat | ps -eaf|grep $LOGNAME | while read LINE
do
if [[ grep LINE = "-Xms" ]]; then
pid=$(echo $LINE | awk '{print $2}')
#echo $pid
kill -9 $pid
fi
:
done
但是这段代码不能在AIX上运行。它在Linux上运行良好。
请帮帮忙。
如果我将cat命令保存到字符串中,然后执行它,那么我将得到一个错误。
linux# cmd="cat /data/test/test.tx* | grep toto"
linux# eval '$cmd'
cat: |: No such file or directory
cat: grep: No such file or directory
cat: toto: No such file or directory
即使是
linux# $cmd
cat: |: No such file or directory
cat: grep: No such file
每当我执行输出多行的linux命令时,我都想对输出的每一行执行一些操作。一般来说,我是这样做的
command something | while read a
do
some operation on $a;
done
这可以很好地工作。但我的问题是,有没有一些方法可以通过预定义的符号(不知道如何调用它)来访问每一行?/像$这样的东西?或者..。$!..或者..。$_
有没有可能做
cat to_be_removed.txt | rm -f $LINE
bash中是否有预定义的$LINE ..或者前一条是最短的路。即。
cat to_be_removed.txt | while read
代码:
# cat mylinux.py
# This program is to interact with Linux
import os
v = os.system("cat /etc/redhat-release")
输出:
# python mylinux.py
Red Hat Enterprise Linux Server release 7.6 (Maipo)
在上面的输出中,无论我为存储输出而定义的变量如何,都会显示命令输出。
如何仅使用os.system方法将shell命令输出存储到变量?
我有一个brick.sprite。我在Debain 8 "Kali Linux“中有一个可执行文件,代码如下:
#include <stdio.h>
#include <stdint.h>
#include <iostream>
/**
* To use this file, pipe a sprite of the old format into stdin, and
* redirect stdout to a second file of your chosing. The sprite header
* will be c