【linux – Bash脚本 – if和grep不起作用】教程文章相关的互联网学习教程文章

linux – 在Bash脚本中嵌入密码【代码】

我正在运行一个测试脚本,其中文件需要复制到目标嵌入式系统.但是当从脚本运行将文件复制到远程目标系统的命令时,我被提示输入目标板的管理员密码.我怎么能脚本自动化,脚本将自己选择密码(从脚本中),并且我不必每次运行脚本时手动输入密码. 该脚本的代码片段如下:scp test.file1 <Target ip-address>:/home/bot21/test/.Password is prompted when the above command is run.解决方法:正确的方法是使用基于密钥的身份验证.Read abo...

linux – 防止*在bash脚本中扩展【代码】

Linux bash脚本:#!/bin/bashfunction Print() {echo $1 }var="*" Print $var执行结果:alex@alex-linux:~/tmp$./sample-script sample-script*扩展到文件列表,实际上是脚本本身.如何防止这种情况并查看实际变量值?在一般情况下,var可能比*更复杂,例如:home / alex / mydir / *.解决方法:你也需要逃避你的变量:Print "$var"在你的功能:echo "$1"

linux – 使用Bash脚本将输入提供给命令行【代码】

所以我试图创建一个调用这个命令的bash脚本,然后将其输入.它调用这一个命令,命令后需要3-4个输入.我键入命令,它等待我输入名字,一个我输入名字等待我输入姓氏,依此类推.如何使用bash脚本一次将这些参数传递给命令?解决方法:有两种方法. 将所有echo命令分组并将它们传递给命令:{ echo $firstname; echo $lastname ; } | somecommand或使用heredoc:somecommand <<EOF $firstname $lastname EOF

linux – 在bash脚本中使用“备用屏幕”【代码】

备用屏幕被许多“用户交互”终端应用程序使用,如vim,htop,screen,alsamixer,less,……它就像终端内容的不同缓冲区,当应用程序退出时消失,所以整个终端恢复,看起来应用程序没有输出任何东西. 我想在我自己的shell(bash)脚本中实现完全相同的东西,除了它不必是可移植的.我坚持只使用linux和基于xterm的终端模拟器;但是如果可能的话,解决方案应该使用类似tput的东西.但是,我不想使用某些外部脚本语言(甚至是类似C的东西). 虽然我不想使...

linux – 在sudo调用的Bash脚本中识别用户【代码】

如果我创建包含以下内容的脚本/root/bin/whoami.sh:#!/bin/bash whoami并且这个脚本由具有正确配置的sudo的用户调用,它将指示root有没有快速的方法来获取脚本中的实际用户,还是我必须求助于传递此用户名的参数?解决方法:如果你使用sudo su – $SUDO_USER不起作用.它还需要多次检查 – 如果$USER ==’root’则获得$SUDO_USER. 而不是命令whoami使用谁是我.这将运行为当前会话筛选的who命令.它为您提供了比您需要的更多信息.所以...

linux – 语法错误:“(”意外 – 在bash脚本中使用!(*.sh)【代码】

我想运行一个sh文件:#!/bin/bash for f in !(*.sh); doffmpeg -i "$f" -vf yadif=0:-1 -threads 0 -c:v libx264 -pix_fmt yuv420p -r 29.97 -b:v 3000k -s 1280x720 -preset:v slow -profile:v Main -level 3.1 -bf 2 -movflags faststart /mnt/media/out-mp4/"${f%.mxf}.mp4"rm $f done但是,我收到以下错误:2: task1.sh: Syntax error: "(" unexpected如果我直接在命令行上尝试,它可以很好地工作.the path and ...

linux – Bash脚本进程替换语法错误:“(”意外【代码】

我想运行这个脚本:#!/bin/bash echo <(true)我把它当作:sh file.sh我得到“语法错误:”(“意外”.我发现了一些类似的情况,但仍然无法解决这个问题.我是shell脚本的初学者,但据我了解: >我使用的shebang是正确的并选择了bash shell,因此进程替换语法应该有效>我从命令行尝试相同,它的工作原理.我使用echo $0进行检查,它给了我“bash”,那么在命令行和调用相同shell的脚本中运行命令有什么不同? 也许这很简单,但我找不到解释或解...

linux – 向路径添加bash脚本【代码】

我想在Linux PATH中添加一个小脚本,所以我不必在它实际放置在磁盘上的地方运行它. 脚本非常简单,就是通过代理提供apt-get访问,我就是这样做的:#!/bin/bash array=( $@ ) len=${#array[@]} _args=${array[@]:1:$len} sudo http_proxy="http://user:password@server:port" apt-get $_args然后我将其保存为apt-proxy.sh,将其设置为x(chmod),当我在放置此文件的目录中时,一切正常. 我的问题是:如何将这个apt-proxy添加到PATH,所以我实...

linux – 在Bash脚本中管道进出剪贴板【代码】

是否可以在Bash中管道进出剪贴板? 无论是与设备手柄之间的管道连接还是使用辅助应用程序,我找不到任何东西. 例如,如果/ dev / clip是链接到剪贴板的设备,我们可以这样做:cat /dev/clip # Dump the contents of the clipboard cat foo > /dev/clip # Dump the contents of "foo" into the clipboard解决方法:你可以处理很多剪贴板.我希望你可能是一个想要把东西放在X Windows主剪贴板中的Linux用户.通常,您要与之交谈的剪...

linux – 如何在Bash脚本中将DOS / Windows换行符(CRLF)转换为Unix换行符(LF)?【代码】

如何以编程方式(即不使用vi)将DOS / Windows换行符转换为Unix? dos2unix和unix2dos命令在某些系统上不可用.如何使用sed / awk / tr等命令模拟这些?解决方法:你可以使用tr从DOS转换为Unix;但是,如果CR仅作为CRLF字节对的第一个字节出现在文件中,则只能安全地执行此操作.通常就是这种情况.然后你使用:tr -d '\015' <DOS-file >UNIX-file请注意,名称DOS文件与名称UNIX文件不同;如果您尝试两次使用相同的名称,则最终文件中不会包含任...

linux – 用于打开chrome的bash脚本,然后在chrome关闭时关闭计算机【代码】

我想在bash中编写一个启动脚本,以使ubuntu框更加爷爷友好. 该脚本应该: 开铬等到铬关闭关掉电脑 到目前为止我有#!/bin/bash if [ -z "$1" ]; thenaddress="http:\\www.google.co.uk" elseaddress=$1 fiecho starting the internet google-chrome $addresswhile [ 1=1 ]; dogrep_resp=$(ps aux | grep chrome)if [ -z "$grep_resp" ]; thenecho turning computer off elseecho chrome still runningfisleep 5 done 但是“chrome”的...

linux – 在bash脚本中,如何将文本文件中包含的值提供给程序执行的开关?【代码】

我想在Linux中编写一个执行程序多次(例如,3次)的bash脚本,并根据文本文件中提供的值列表指定切换值. 例如,假设有一些程序programname有一个开关-switch,它以浮点数作为输入.因此,该程序的一次执行可能是:programname -switch 0.05其中0.05是传递给开关-switch的特定值. 现在我想在某种文本文件中阅读,其中包含一系列值,我希望在不同的programname调用中连续传递给-switch.我的文本文件test.txt可能包含以下数据:0.05 3.19 100.75...

linux – 用于检查PDF的BASH脚本是ocr’d【代码】

不知道从哪里开始真的 我有一个超过8000 PDf的Linux服务器,需要知道哪些PDF已经过了,哪些没有. 正在考虑某种脚本调用XPDF检查pdf,但老实说不确定这是否可行 在此先感谢您的帮助解决方法:确保安装了命令行工具pdffonts. (这有两个版本:一个作为xpdf-utils的一部分发布,另一个作为poppler-utils的一部分.) 所有由扫描页面组成的PDF都不会使用任何字体(既不是嵌入式字体也不是非嵌入式字体). 命令行pdffonts /path/to/scanned.pdf然后...

linux – 如何在bash脚本中删除换行符?【代码】

我的小脚本有点问题.文本文件有很多条目,如:permission-project1-admin permission-project2-admin ....脚本看起来像这样(事实上,它是一个可怕的但仍然帮助我):#!/bin/bash for i in $(cat adminpermission.txt); dopermission=$(echo $i | cut -f1)printf "dn:$permission,ou=groups,dc=domain,dc=com \n" printf "objectclass: groupOfUniqueNames \n" printf "objectclass: top \n" printf "description: \n" printf "cn:$per...

linux – 使用bash脚本打开最新下载的文件【代码】

以下是我对这个问题的尝试.它是一个功能性脚本,但我必须指定要用于每种文件类型的应用程序.由于有关默认应用程序的信息必须已经存储在Linux / Ubuntu的某个地方,我如何访问它们并将其合并到我的脚本中? 另外,我的剧本能以任何方式更“优雅”吗? 感谢您帮助Bash脚本初学者!我感谢任何评论.#!/bin/bash # Open the latest file in ~/Downloadsfilename=$(ls -t ~/Downloads | head -1) filetype=$(echo -n $filename | tail -c -3...