tcsh
在 RHEL-8.10 中运行。
做了之后grep -l <something> *
我得到了很多Is a directory
回应。
在 bash 中我会 grep -l <something> * 2>/dev/null
抑制这一点。
tcsh 中的等效语法是什么?
tcsh
在 RHEL-8.10 中运行。
做了之后grep -l <something> *
我得到了很多Is a directory
回应。
在 bash 中我会 grep -l <something> * 2>/dev/null
抑制这一点。
tcsh 中的等效语法是什么?
如何保留过渡期间的完整 stdout 输出?
如下面典型的例子,你可以看到 yum 元数据刷新状态不会重定向到其 yr.log。
所以我的问题是如何在过渡期间保留这些输出。
#
# yum -v repolist
Not loading "rhnplugin" plugin, as it is disabled
Not loading "product-id" plugin, as it is disabled
Loading "refresh-packagekit" plugin
Loading "security" plugin
Not loading "subscription-manager" plugin, as it is disabled
Config time: 0.015
Yum Version: 3.2.29
RHEL_6.4_x86-64 | 3.9 kB 00:00 ...
RHEL_6.4_zlocal | 2.9 kB 00:00 ...
Setting up Package Sacks
pkgsack time: 0.012
Repo-id : RHEL_6.4_x86-64
Repo-name : RHEL_6.4_x86-64_dvd_all
Repo-revision: 1359576928
Repo-updated : Thu Jan 31 04:22:56 2013
Repo-pkgs : 3,648
Repo-size : 3.2 G
Repo-baseurl : file:///mnt/
Repo-expire : 21,600 second(s) (last: Wed Jun 26 08:26:11 2024)
Repo-id : RHEL_6.4_zlocal
Repo-name : RHEL_6.4_x86-64_dvd_zlocal
Repo-revision: 1715738735
Repo-updated : Wed Mar 31 17:26:56 2021
Repo-pkgs : 3,720
Repo-size : 3.2 G
Repo-baseurl : file:///install/rhel_6.4_x86_64/
Repo-expire : 21,600 second(s) (last: Wed Jun 26 08:26:11 2024)
repolist: 7,368
#
#
#
# yum -v repolist 1> /tmp/yr.log 2> /tmp/yr.err
#
#
# cat /tmp/yr.log
Not loading "rhnplugin" plugin, as it is disabled
Not loading "product-id" plugin, as it is disabled
Loading "refresh-packagekit" plugin
Loading "security" plugin
Not loading "subscription-manager" plugin, as it is disabled
Config time: 0.069
Yum Version: 3.2.29
Setting up Package Sacks
pkgsack time: 0.712
Repo-id : RHEL_6.4_x86-64
Repo-name : RHEL_6.4_x86-64_dvd_all
Repo-revision: 1359576928
Repo-updated : Thu Jan 31 04:22:56 2013
Repo-pkgs : 3,648
Repo-size : 3.2 G
Repo-baseurl : file:///mnt/
Repo-expire : 21,600 second(s) (last: Wed Jun 26 15:24:26 2024)
Repo-id : RHEL_6.4_zlocal
Repo-name : RHEL_6.4_x86-64_dvd_zlocal
Repo-revision: 1715738735
Repo-updated : Wed May 15 10:06:56 2024
Repo-pkgs : 3,720
Repo-size : 3.2 G
Repo-baseurl : file:///install/rhel_6.4_x86_64/
Repo-expire : 21,600 second(s) (last: Wed Jun 26 15:24:27 2024)
repolist: 7,368
#
问题:需要运行多个进程,尤其是“tail -f log.log >> wrile_log.log”进程来收集日志。可以针对同一日志文件在不同时间运行命令。这不是问题,但是……我如何终止其中一个进程而不中断另一个进程?
我正在尝试使用 xterm 中的当前工作目录进行重定向。
xterm -ls -geometry 80x30 -e 'cd /home/work/test1/; pwd; make | tee test1.log;'
xterm -ls -geometry 80x30 -e 'cd /home/work/temp/test2/; pwd; make | tee test2.log;'
xterm -ls -geometry 80x30 -e 'cd /home/work/tmp/test3/; pwd; make | tee test3.log;'
xterm -ls -geometry 80x30 -e 'cd /home/work/my_test4/; pwd; make | tee my_test4.log;'
xterm -ls -geometry 80x30 -e 'cd /home/work/append/my_test5/; pwd; make | tee my_test5.log;'
...
我想将输出重定向到一个文件,该文件的名称是当前日期和时间以及 xterm 中当前的最后一个目录名称。
for example).
xterm -ls -geometry 80x30 -e 'cd /home/work/append/my_test5/; pwd; make | tee my_test5_03:19:12-11-2023.log;'
如何将输出重定向到一个文件,该文件的名称是xterm中的当前日期和时间以及当前目录名称?
您可以使(在后台nohup ./file $1 $2 &
运行)仅创建错误而不创建标准输出吗?./file
nohup.out
但请不要手动指定nohup.out
ie
nohup ./file $1 $2 >/dev/null 2>nohup.out &
此外,以下状态nohup: redirecting stderr to stdout
和重定向既不输出也不重定向错误。我认为这是因为它告诉它将错误重定向到输出,但输出被重定向到 /dev/null:
nohup ./file $1 $2 >/dev/null &
我有一个 bash 脚本,其中包含几个“echo STRING”命令。我想用记录器记录 STRING,但仍将其打印在标准输出上。echo STRING | logger
显然不这样做。
编辑:echo STRING | tee >(logger)
做到了。>(COMMAND) 是一个进程替换,它替换进程的输入。
我有几种不同的算法,我需要对其进行原型设计。
所以我制作了原型程序和脚本。调用的脚本time.sh
看起来像这样
echo "Timing algorithm1:"
time algo1 >dev/null
echo "Timing algorithm2:"
time algo2 >dev/null
echo "Timing algorithm3:"
time algo3 >dev/null
...
现在为了简单起见,替换ls
为algo1
...(我不想为每个算法发布代码,强迫人们编译它...)
echo " Timing ls"
time ls 2>&1 > /dev/null
叫它time_ls.sh
那我就做
sh time_ls.sh > ls_sh.meas
无论我做什么,无论我在脚本或命令行中放置什么重定向,我都会得到两个结果之一。我要么在终端中得到 echo 的输出,即“Timing ls”,要么得到ls_sh.meas
相反的定时数据。
这就像 stdout 和 stderr 不想聚集在一起并创建一个婴儿数据文件。
任何人都可以解释这种奇怪的行为,并建议解决方法吗?
PS:这是在 bash 中完成的。
简单的问题,我运行这个命令
ss -tulpnoea|grep -i water|grep -v 127
Failed to find cgroup2 mount
Failed to find cgroup2 mount
Failed to find cgroup2 mount
Failed to find cgroup2 mount
Failed to find cgroup2 mount
Failed to find cgroup2 mount
Failed to find cgroup2 mount
Failed to find cgroup2 mount
Failed to find cgroup2 mount
Failed to find cgroup2 mount
.....
我试过 2> /dev/null ...
ss -tulpnoea|grep -i water|grep -v 127 2> /dev/null
Failed to find cgroup2 mount
Failed to find cgroup2 mount
Failed to find cgroup2 mount
Failed to find cgroup2 mount
Failed to find cgroup2 mount
Failed to find cgroup2 mount
Failed to find cgroup2 mount
Failed to find cgroup2 mount
Failed to find cgroup2 mount
Failed to find cgroup2 mount
.....
如何避免有关 cgroup2 mount 的烦人消息?发行版是 Slackware 15.0
我正在尝试针对域名测试一些名称服务器。为此,我创建了一个脚本来读取名称服务器列表并请求域名。
像这样基本的东西:
#!/bin/bash
domain=$1
[ -z $domain ] && read -p "DOMAIN NAME: " domain
namefile="./nameserver"
echo "RESULT - NAMESERVER DOMAIN IP"
for host in $(cat "$namefile"); do
IPADD=$(dig +short "$host" "$domain" A 2> /dev/null)
[[ ! -z $IPADD ]] && result="OK" || result="FAIL"
echo "$result - Nameserver: $host - Domain: $domain - IP answer: $IPADD"
done
我遇到的问题是,当Dig
失败时,它不会将错误重定向到null
. 因此,$IPADD
变量接收到错误的值。
# CORRECT nameserver
# dig +short @8.8.8.8 google.com A 2> /dev/null
142.250.218.206
# WRONG nameserver
# dig +short @8.8.8.80 google.com A 2> /dev/null
;; connection timed out; no servers could be reached
如果我使用错误的名称服务器地址对其进行测试,我仍然会收到一条错误消息,如上所示。
据我了解,重定向到 时null
,它不应显示该错误消息。
任何想法?
谢谢你。
我一直在编写具有多种功能的脚本。
我正在尝试添加一个函数,显示“/usr/share/applications”文件夹中所有应用程序的 whatis 命令输出,而不显示“不合适”的行。
我当前的命令尝试是:
whatis $(ls /usr/share/applications | cut -d "." -f 1) | grep -i -v "nothing appropriate"
我遇到的问题是 grep 命令似乎不起作用,因此仍然显示包含短语“nothing proper”的行。
我还尝试了许多替代方法,包括使用“replace”和“sed”命令将不需要的行转换为空白区域,但这些也未能解决问题。
所有上述尝试,我都尝试过直接输出命令,也尝试过将输出路由到文件中,并对文件的“cat”输出执行过滤器。
有没有人可以推荐任何替代品?