Articles of shell

Shell脚本问题,包含空格的文件名

我知道处理文件名空间的一种方法是用单引号括起文件名:“'”。 为什么下面的代码叫做“echo.sh”,在包含带空格的文件名的目录下工作,但程序“ls.sh”不起作用,唯一的区别是'echo'被'ls'replace? echo.sh #!/bin/sh for f in * do echo "'$f'" done 生产 : 'ABC' “高清” 'echo.sh' 'ls.sh' 但是,“ls.sh”失败: #!/bin/sh for f in * do ls "'$f'" done 生产 : ls:不能访问'ab c':没有这样的文件或目录 ls:不能访问'de f':没有这样的文件或目录 ls:不能访问'echo.sh':没有这样的文件或目录 ls:不能访问'ls.sh':没有这样的文件或目录

我想要一个shell脚本是可执行的,但不可读

我创build了一个脚本,我希望我们的共享系统上的其他用户执行但不能读取。 我将所有的权限设置为可执行权限,但撤销了R / W权限。 —x–x–x 1 dilletante staff 0 2013-04-02 11:42 expect.sh 然而脚本不能执行…原因很简单.. 解释器也需要读取脚本 我想要一个解决方法,如果有的话……我可以将它embedded到一些编译语言中。那可以工作吗? 如果是的话,你能指出我可以学习如何做的资源..

freeTDS bash:在Microsoft SQL Server中执行sql查询

我可以使用freeTSD和命令行通过Mint Linux VM连接到Microsoft SQL Server 2008实例,以在其上执行sql语句。 现在我想在bash脚本中自动化这个。 我能够成功login我的bash脚本: TDSVER=8.0 tsql -H servername -p 1433 -D dbadmin -U domain\\Administrator -P password 然后我有我的SQL查询: USE dbname GO delete from schema.tableA where ID > 5 GO delete from schema.tableB where ID > 5 GO delete from schema.tableC where ID > 5 GO exit 这在通过freeTSD命令行手动执行时有效,但不能在我放入bash文件时使用。 我跟着这个post: freeTSD&bash 。 这是我的bash脚本示例: echo […]

使用input/输出redirect在后台运行进程

我很想知道,当进程有input/输出redirect来在后台运行进程时,在代码中使用“&”运算符是否有所不同 在后台运行进程方面,这两行代码之间有什么区别? 如果有的话,我怎样才能确定分歧将是什么? setsid python script.py < /dev/zero &> log.txt & setsid python script.py < /dev/zero & > log.txt & setsid python script.py < /dev/zero > log.txt & setsid python script.py & < /dev/zero > log.txt

有没有办法改变vim的默认模式

有谁知道如何改变VIM的默认模式? 它的默认模式是命令模式,但我可以改变它插入模式?

在unix / linux命令行(例如BASH)中定义函数

有时候,我有一个单独的内容,我为了一个特定的任务重复了很多次,但是可能永远不会以完全相同的forms再次使用。 它包含一个我从目录列表中粘贴的文件名。 之间的某处并创build一个bash脚本我想也许我可以在命令行创build一个单线程函数,如: numresults(){ ls "$1"/RealignerTargetCreator | wc -l } 我已经尝试了一些使用eval的方法,使用了numresults=function… ,但还没有find正确的语法,到目前为止还没有发现任何东西。 (所有的东西都是关于bash函数的教程)。

为什么在Linux机器上安装Java时使用了alternatives命令

在Linux机器上安装Java时,需要执行以下命令(请参阅教程中的命令)。 alternatives –install /usr/bin/java java /usr/java/jre1.7.0_01/bin/java 20000 terminal上的man alternatives命令说: select – 维护确定默认命令的符号链接 我不明白为什么我们在安装Java(JRE或JDK)的时候需要这个命令,并且在行尾有20000是指什么? 请注意解释。

Ansible权限问题

我试图将当前用户添加到系统中的一个组中,然后执行一个需要该组权限的命令。 我的手册是这样的: – name: Add this user to RVM group sudo: true user: state=present name=vagrant append=yes groups=rvm group=rvm – name: Install Ruby 1.9.3 command: rvm install ruby-1.9.3-p448 creates=/usr/local/rvm/bin/ruby-1.9.3-p448 问题是,所有这些都发生在同一个shell中。 stream浪者的shell还没有被新的组更新。 是否有一种干净的方式来刷新Ansible中的用户当前组? 我想我需要得到它重新连接或打开一个新的shell。 不过,我试图打开一个新的壳,它只是挂起: – name: Open a new shell for the new groups shell: bash 当然,它永远不会退出! 与newgrp相同的东西 – name: Refresh the groups shell: newgrp 因为它基本上做同样的事情。 […]

如何使用shell脚本创buildzip文件?

我想创build一个基于目录的ZIP。 但是我需要从Result目录下制作zip文件。 #!/bin/bash zip -r /home/admin/download.zip /home/admin/1/2/3/Results

在shell脚本中将编码格式设置为java

我有一个运行我的Java应用程序的shell脚本。现在我想指定编码格式“UTF8”到我的Java应用程序使用shell脚本可以帮助任何人。我使用的是mac os。 谢谢 Ganesh神