Questions tagged «bash»

与其他Bourne / POSIX shell相对,GNU的Bourne Again SHell特有的问题。对于一般关于Unix shell的问题,请改用/ shell标记。

6
如何使用bash删除重复文件
我有一个包含重复文件的文件夹md5sum(md5在Mac上,按(在Mac上)文件),我想要一个克朗 计划删除所有找到的作业。 但是,我仍然坚持如何执行此操作。到目前为止,我有: md5 -r * | sort 输出如下内容: 04c5d52b7acdfbecd5f3bdd8a39bf8fb gordondam_en-au11915031300_1366x768.jpg 1e88c6899920d2c192897c886e764fc2 fortbourtange_zh-cn9788197909_1366x768.jpg 266ea304b15bf4a5650f95cf385b16de nebraskasupercell_fr-fr11286079811_1366x768.jpg 324735b755c40d332213899fa545c463 grossescheidegg_en-us10868142387_1366x768.jpg 3993028fcea692328e097de50b26f540 Soyuz Spacecraft Rolled Out For Launch of One Year Crew.png 677bcd6006a305f4601bfb27699403b0 lechaustria_zh-cn7190263094_1366x768.jpg 80d03451b88ec29bff7d48f292a25ce6 ontariosunrise_en-ca10284703762_1366x768.jpg b6d9d24531bc62d2a26244d24624c4b1 manateeday_row10617199289_1366x768.jpg ca1486dbdb31ef6af83e5a40809ec561 Grueling Coursework.jpg cdf26393577ac2a61b6ce85d22daed24 Star trails over Mauna Kea.jpg dc3ad6658d8f8155c74054991910f39c smoocave_en-au10358472670_1366x768.jpg dc3ad6658d8f8155c74054991910f39c smoocave_en-au10358472670_1366x7682.jpg 如何根据文件的MD5进行处理以删除重复项?我并不在乎我保留哪个 “原始”字符,但我只想保留一个。 我是否应该以其他方式来处理这个问题?

2
if命令在find -exec中
我只是想列出当前目录下的所有目录和文件,并使用以下命令写出它们是文件还是目录: find -exec echo `echo {} : ;if [ -f {} ]; then echo file; else echo directory;fi` \; 我知道这是一个愚蠢的命令,我可以使用诸如-type f或的其他方式-type d,但是我想了解为什么这段代码无法按预期工作。它只是将目录打印到所有这些文件。例如,当输出find为时: . ./dir ./dir/file 我的代码输出是: . : directory ./dir : directory ./dir/file : directory 和输出 echo `echo dir/file : ;if [ -f dir/file ]; then echo file; else echo …

1
在crontab错误消息中,第19行:12364被杀死是什么意思?
我每天都有一个crontab任务: 50 1 * * * sh /my_path/daily_task.sh > /tmp/zen_log 2>&1 这个daily_task shell脚本将运行一些python脚本并产生一个数据文件。 它失败了两个晚上。但是当我早上来的时候,手动运行python脚本,我得到了数据文件。或者,我设置了一个新的crontab,它仅将日期设置为0 10 * * *,并且此crontab也成功。 所以昨天,我放入> /tmp/zen_log 2>&1了cron任务以获取一些错误消息。 今天早上,我在zen_log中收到了此错误消息: /my_path/daily_task.sh: line 19: 12364 Killed /usr/local/bin/python2.7 my_python_script.py 2 mix > mix_hc_$datestamp 2>&1 似乎某些进程已被杀死?但这到底是什么line 19: 12364 Killed意思? PS: 今天,在一分钟前,当我手动运行python脚本时,我得到了: /usr/local/bin/python2.7 my_python_script.py 2 mix > mix_hc_$datestamp 2>&1 Killed
10 bash  cron 

2
在Ctrl + C上,终止当前命令,但继续执行脚本
我有一个bash脚本,其中我执行一行,休眠一段时间,然后在tail -f日志文件中验证是否可以看到某种模式,按ctrl + c退出,tail -f然后移至下一行直到bash脚本完成执行: 到目前为止,这是我所做的: #!/bin/bash # capture the hostname host_name=`hostname -f` # method that runs tail -f on log_file.log and looks for pattern and passes control to next line on 'ctrl+c' echo "===================================================" echo "On $host_name: running some command" some command here echo "On $host_name: sleeping for 5s" …
10 bash  shell  signals  trap 

1
是否可以在Shell脚本中同时运行两个命令?
我知道可以在命令行上&在后台运行命令。但是我想知道是否可以在脚本中做到这一点。 我有一个像这样的脚本: date_stamp=$(date +"%Y-%m-%d" --date='yesterday') shopt -s extglob cd /my/working/directory/ sh ./stay/get_it_ios.sh sh ./stay/get_it_mix.sh cd stay zip ../stay_$date_stamp.zip ./*201* rm ./stay/!(*py|*sh) 我想运行sh ./stay/get_it_ios.sh和sh ./stay/get_it_mix.sh合力得到更为准确的数据。是否可以在Shell脚本的范围内执行此操作?

1
在Linux上将CSV转换为XLS文件
以下Perl脚本可以将CSV文件转换为XLS文件 问题是我需要在客户Linux机器上安装许多Perl模块 为了运行此Perl脚本,实际上我不能,因为Linux机器是客户机器(不允许安装模块) 所以我需要为这个Perl脚本找到其他选择 第一位客户拥有Linux红帽机器版本5.X 而且我想找到一些bash / ksh / sh / awk脚本,它们可以完成与perl脚本相同的工作 所以我想找到其他将CSV转换为XLS文件的替代方法 请咨询如何找到该脚本?或其他建议在Linux计算机上将CSV转换为XLS #!/usr/bin/perl -w ############################################################################### # # Example of how to use the WriteExcel module # # Simple program to convert a CSV comma-separated value file to an Excel file. # This is more or less an non-op …
10 linux  bash  shell-script  awk  perl 

3
将参数从文件传递到bash脚本
我有这种情况: ./ ./myscript.sh ./arguments.txt ./test.sh 在内部myscript.sh,我必须运行文件test.sh,并将其中包含的参数传递给它arguments.txt。 myscript.sh是: arguments=$(cat arguments.txt) source test.sh $arguments 如果arguments.txt最多包含一个参数,则此方法效果很好: firstargument 替换为: ++ source test.sh 'firstargument' 但是问题在于两个或多个参数。它这样做: ++ source test.sh 'firstargument secondargument' 另外,我也不知道内部的参数数量arguments.txt。可以为零或更多。

3
可以使用xxd输出十六进制数字而不是字符串的二进制表示吗?
我想在命令行中从十六进制生成原始二进制数据包,以测试协议。我希望通过这种方式比编写应用程序更简单。 这是当前发生的情况: echo '0A' | xxd -b 0000000: 00110000 01000001 00001010 我想拥有的是: echo '0A' | xxd -b 0000000: 00001010 要么 echo '0A' | xxd -b 0000000: 01010000 由于我无法确定所需的耐力。我希望能够在必要时进行更改。这可以实现吗?

1
Bash保存后会自动将更新重新加载(注入)到正在运行的脚本中:为什么?有实际用途吗?
我正在编写bash脚本,并且在脚本等待while循环中的某些输入时碰巧更新了代码(将脚本文件保存到磁盘)。回到终端并继续执行脚本的先前操作后,bash给出了有关文件语法的错误: /home/aularon/bin/script: line 58: unexpected EOF while looking for matching `"' /home/aularon/bin/script: line 67: syntax error: unexpected end of file 因此,我尝试执行以下操作: 第一个:创建脚本,self-update.sh我们称它为: #!/bin/bash fname=$(mktemp) cat $0 | sed 's/BEFORE\./AFTER!./' > $fname cp $fname $0 rm -f $fname echo 'String: BEFORE.'; 脚本所做的是读取其代码,将单词“之前”更改为“之后”,然后使用新代码重新编写自身。 第二次运行: chmod +x self-update.sh ./self-update.sh 第三奇迹 aularon@aularon-laptop:~$ ./self-update.sh String: …
10 bash  shell  scripting 

3
如何让bash自动完成通配符?
如果我有包含文件的目录 foo.bar.a.cat foo.bar.a.hat 然后我输入ls f+ TABbash shell自动完成ls foo.bar.a.。如果输入ls *bar*+,TAB我希望它自动完成*bar*.a.。这可能吗? 这看起来类似于问题 如何在bash中启用通配符的制表符完成? 但是建议的答案“它对我来说是开箱即用的”,却没有。我也尝试过TAB TAB,没有效果。命令``bash --version givesGNU bash,4.2.37(1)-release(x86_64-pc-linux-gnu)`。



3
bash中是否有删除路径最后一段的快捷方式?
我已经精通许多bash快捷键,可以更快地执行bash操作:Ca / Ce,Cu,Cw,Mf / Mb,Cr等。我没有找到一个常见的快捷方法,但是当我想删除路径的最后一段时: 说我有 ls ~/projects/arcaneweb/libraries 我意识到我的意思是 ls ~/projects/arcaneweb/sources 有没有一种方法可以删除libraries,保存大量击键?
10 bash 

1
.bashrc没有被执行
我有一个用户(非root用户),该用户的~/.bashrc文件中带有一些别名。 但是看起来文件不是在登录时执行的。如果我这样source ~/.bashrc做了,它就会按照预期的那样工作。但是不~/.bashrc应该在每次登录时都执行吗? 权限设置为644(与我的root用户的权限相同.bashrc,效果很好)。文件归相关用户所有。
10 bash  rhel  bashrc 

3
如何使用7z归档目录中的所有文件和目录(包括隐藏的文件和目录)?
由于我的存档需求的具体情况,我对tar.gz可靠的存档不满意,而改用7z。 我使用以下命令执行此操作: 7z a -t7z -m0=lzma -mx=9 -mfb=64 -md=32m -ms=off ~/my/folder.7z ~/my/folder/* 要创造一切内部的档案~/my/folder/的~/my/folder.7z文件。 但是~/my/folder/.hiddenFolder那时候就不进入存档了。如何解决这个问题?不*应该返回所有文件和文件夹吗?
10 bash  wildcards  7z 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.