所有问题: [bash]

1,294 个问题

194
投票
4答案
99202 次观看

如何使用Bash递归创建不存在的子目录?

我正在创建一个快速备份脚本,该脚本会将一些数据库转储到漂亮的/整洁的目录结构中,我意识到在创建目录之前需要进行测试以确保目录存在。我拥有的代码可以工作,但是似乎有更好的方法可以做到这一点。有什么建议吗? [ -d "$BACKUP_DIR" ] || mkdir "$BACKUP_DIR" [ -d "$BACKUP_DIR/$client" ] || mkdir "$BACKUP_DIR/$client" [ -d "$BACKUP_DIR/$client/$year" ] || mkdir "$BACKUP_DIR/$client/$year" [ -d "$BACKUP_DIR...

28
投票
7答案
9974 次观看

如何在Cygwin中关闭哔哔声斜杠?

系统蜂鸣/响铃频繁发生(即,当我输入几个字母,然后在有一些选项时,键入tab自动完成)。 如何关闭此功能? 我用Google搜索并尝试过: set bell-style none (the command went through but nothing changed) 和 setterm -blength 0 (got a bash command not found) 谢谢!

33
投票
4答案
56729 次观看

文件外壳脚本的编码

如何检查Shell脚本中的文件编码? 我需要知道文件是用utf-8还是iso-8859-1编码的。 谢谢

111
投票
28答案
120651 次观看

在Bash中转置文件的有效方法

我有一个巨大的制表符分隔文件,格式如下: X column1 column2 column3 row1 0 1 2 row2 3 4 5 row3 6 7 8 row4 9 10 11 我想只使用bash命令以有效的方式转置(我可以编写十行左右的Perl脚本来做到这一点,但执行起来应该比本地bash慢职能)。所以输出应该像 X row1 row2 row3 row4 column1 0 3 6 9 column2 1 4 7 10 column3 2 5 8 11 我想到了这样的解决方案 cols=`head -n 1 input | wc -w` for (( ...

11
投票
8答案
52409 次观看

如何在脚本中使用ping

我想要一个可以执行的bash脚本: for c in computers: do ping $c if ping is sucessfull: ssh $c 'check something' done 如果我只做ssh,并且计算机没有响应,则超时将花费很长时间。因此,我正在考虑使用ping的输出来查看计算机是否处于活动状态。我怎么做?

0
投票
1答案
448 次观看

从SpringBoard运行脚本时,我可以解决启动超时问题吗?

我喜欢在iPhone上编写bash shell脚本,将它们放在带有图标,plist等的应用程序文件夹中,因此它们通过在SpringBoard上点击其图标来像应用程序一样执行。由于无法获取输出,因此它不像MobileTerminal那样具有交互性,但是它有其用途。 它适用于简单的脚本,但是长脚本因syslog中的“无法及时启动”错误而超时。搜索使我在这里进行了有关启动合法iPhone应用程序超时的讨论。 我假设脚本无法与干净启动的系统进行通信,但是有什么办法可以解决脚本超时问题? 我是Linux专家,没有Mac或Windows专用的XCode,也没有足够的空闲时间学习C ++,如果所...

6
投票
4答案
1258 次观看

vi或emacs的重击用法

从编程的角度来看,当您设置bash shell通过以下方式使用vi或emacs时 set -o vi 或 set -o emacs 这里到底发生了什么?我一直在读一本书,其中声称bash shell使用这些编辑器之一来输入shell本身,但我认为它可能使用了readline。

14
投票
7答案
16245 次观看

带空格的Shell变量,引用单个命令行选项

Autoconf脚本在文件名或带空格的路径名时遇到问题。例如, ./configure CPPFLAGS="-I\"/path with space\"" 结果(config.log): configure:3012: gcc -I"/path with space" conftest.c >&5 gcc: with: No such file or directory gcc: space": No such file or directory ./ configure中的compile命令为ac_compile='$CC -c $CFLAG...

0
投票
1答案
387 次观看

在MinGW bash shell中禁用了右键单击,如何还原

运行MinGW bash shell时,无法再打开鼠标右键菜单。当我退出外壳程序并返回到cmd.exe外壳程序时,鼠标右键再次起作用。 MinGW bash版本是否以某种方式禁用了鼠标按钮?以及如何防止这种情况?

1
投票
2答案
407 次观看

使用Bash脚本从文件夹名称中删除前4个字母

正如标题所述,我想使用 Bash 删除文件夹名称中的前4个字母一个>脚本。如果您有另一种在Linux中执行此操作的方法,则我不介意例如蟒蛇。另外,我需要定期(每天)执行脚本。

1
投票
3答案
225 次观看

Cygwin提供了4543种显示可能性;这是什么意思?

家中有一只新小猫,有在我工作时去拜访我的习惯,它可以使我的系统用几只我不知道有可能的爪子来做事。Windows更改了它们的堆叠顺序,浏览器将以前关闭的页面放大了……不过,就在我在Cygwin控制台窗口前的一个窗口中在vim中工作时,小猫走过了键盘的左端。cygwin窗口移到最前面,cygwin光标从提示符下移了一行,并打印了一些内容: 显示所有4543种可能性?(是或否) 我按了'n',但我想知道是否有人可以告诉我我的小猫按了什么键,它叫醒了什么。我已经使用UNIX多年了,但是这个消息没有响起。 TAB * 2用于完成命令:-)你们真棒。希望我能给大家答案!谢谢。我去告诉猫。

12
投票
2答案
6070 次观看

使用Lua脚本启用bash输出颜色

我有几个Lua脚本,它们可以在文本文件和控制台中运行体验并输出大量信息。我想在控制台输出中添加一些颜色,以使其更具可读性。 我知道可以使用ANSI转义序列为bash脚本的输出着色。例如: $ echo -e "This is red->\e[00;31mRED\e[00m" 我试图在Lua中做同样的事情: $ lua -e "io.write('This is red->\e[00;31mRED\e[00m\n')" 但不起作用。我也尝试使用print()而不是io.write(),但是结果是相同的。

18
投票
3答案
17075 次观看

在bash中动态构建命令

我正在bash中动态构建命令。效果很好: COMMAND="java myclass" ${COMMAND} 现在,我想动态构造一个重定向输出的命令: LOG=">> myfile.log 2>&1" COMMAND="java myclass $LOG" ${COMMAND} 该命令仍会调用Java进程,但输出不会重定向到myfile.log 此外,如果我这样做: BACKGROUND="&" COMMAND="java myclass $BACKGROUND" ${COMMAND} 该命令不在后台运行。 关于如何使...

7
投票
4答案
3751 次观看

if语句的总值为TRUE

不管我的进程是启动还是停止,该脚本为什么总是返回“ running”(运行)? if ps ax | grep -v grep | grep "processName" > /dev/null then echo $"running" else echo $"not running" fi 非常感谢您 更新: 我添加了脚本的完整示例,也许其他地方有问题。 case "$1" in start) # Start daemons. echo -n $"Starting daemon: " ;; stop) # S...

111
投票
14答案
110248 次观看

确保Bash脚本只有一个实例正在运行的最佳方法是什么?

确保给定脚本的仅一个实例正在运行的最简单/最佳方法是什么(假设它是Linux上的Bash)? 此刻我正在做 ps -C script.name.sh > /dev/null 2>&1 || ./script.name.sh 但是它有几个问题: 将支票置于脚本之外 它不允许我从单独的帐户运行相同的脚本-有时我想这样做。 -C仅检查进程名称的前14个字符 当然,我可以编写自己的pidfile处理程序,但我认为应该有一种简单的方法来实现它。

2
投票
3答案
2566 次观看

评估变量失败(带有Crontab)

这是我正在编写的bash脚本的片段,用于记录CPU负载: #!/bin/bash # ... irrelevant nonsense ... cmd1="/usr/bin/mpstat -P ALL | egrep '(AM|PM)([[:space:]]+)(0)' | tr -s ' ' | cut -d' ' -f4" ldsys="$(echo $cmd1 | /bin/sh)" # ... irrelevant nonsense ... 常规上是从控制台执行脚本时, $ldsys的设置正确。它是金色的。 这是问题所在:使用crontab执行时,$ldsys为空。 在...

53
投票
3答案
59642 次观看

找不到Bash变量分配和命令

我有一个shell脚本,可以让我访问脚本中的全局变量,但是当我尝试创建自己的脚本时,它会响应:找不到命令。 #!/bin/bash J = 4 FACE_NAME = "eig$J.face" USER_DB_NAME = "base$J.user" 运行上面的脚本时,我得到: ./test1.sh line 2: J: command not found ./test1.sh line 3: FACE_NAME: command not found ./test1.sh line 4: USER_DB_NAME: command not found 有什么想法吗?我...

2
投票
2答案
2781 次观看

linux bash命令按空格分隔

所以我试图一次只显示列 第一个ls -l给我这个 drwxr-xr-x 11 stuff stuff 4096 2009-08-22 06:45 lyx-1.6.4 -rw-r--r-- 1 stuff stuff 14403778 2009-10-26 02:37 lyx.tar.gz 我正在使用它: ls -l |cut -d " " -f 1 得到这个 drwxr-xr-x -rw-r--r-- ,它显示我的第一列就好了。然后我想在第二列上看到 ls -l |cut -d " " -f 2 我只有这个 11 我...

3
投票
2答案
5210 次观看

Bash Case菜单-动态选择

我不确定问跟进问题的政策是什么。所以,如果我违反协议,请原谅。早些时候,我在bash中构建菜单(此处) 到目前为止,我的工作真的非常好。在这里编码。 while [[ 1 ]] do cat -n "$dumpfile" read -p "Please make a selection, select q to quit: " choice case $choice in # Check for digits [0-9] ) dtvariable=$(sed -n "$choice"p "$dumpfile") ...

31
投票
4答案
27736 次观看

我似乎无法在“ -c”选项字符串后的参数中使用Bash“ -c”选项

关于Bash的手册页中提到了-c选项: -c string 如果存在-c选项,则从中读取命令 string 。如果后面有参数 字符串,它们被分配给 位置参数,从 $0。 因此,鉴于上述描述,我认为这样的事情应该起作用: bash -c "echo arg 0: $0, arg 1: $1" arg1 但是输出仅显示以下内容,因此看起来-c字符串之后的参数未分配给位置参数。 arg 0: -bash, arg 1: 我正在运行相当古老的Bash(在Fedora 4上): [root @ dd42 trunk]#bash --...

3
投票
2答案
692 次观看

为什么用sh调用脚本时[[...]]不起作用,而[...]始终起作用?

脚本test.sh: #!/bin/bash if [[ $# -eq 0 ]]; then echo "no arg" else echo "have arg" fi 我以的身份运行 ./test.sh 它说“ no arg”,这是预期的,但是如果我按以下方式运行 sh ./test.sh 它显示“ have arg”,但是您显示$#,在两种情况下都为零。 但是,下面的脚本 #!/bin/bash if [ $# -eq 0 ]; then echo "no arg" else echo "have arg" fi 在两种情况下...

1
投票
4答案
764 次观看

对sha1sum的两个哈希输出执行OR

我想执行sha1sum file1和sha1sum file2并使用bash对它们执行按位或运算。输出应可打印,即53a23bc2e24d039 ...(160位) 我该怎么做? 我知道 回显$(((0xa | 0xb)),但如何扩展到40个十六进制数字? 谢谢

171
投票
17答案
266807 次观看

在Bash中获取日期(当前时间的前一天)

如何在Bash中打印比当前时间早一天的日期?

91
投票
2答案
109015 次观看

在bash中用(下划线)_替换空格的最简单方法

最近,我不得不编写一个小脚本来解析XenServer中的VM,并且由于VM的名称在Windows XP或Windows Server 2008中大多带有空格,因此我必须修剪这些空格并用下划线_代替。。我找到了一个简单的解决方案,使用sed进行此操作,这是处理字符串操作的好工具。 echo "This is just a test" | sed -e 's/ /_/g' 返回 This_is_just_a_test 还有其他方法可以做到这一点吗?

2
投票
2答案
256 次观看

使bash数组从增量添加另一个数组

所以,如果我有一个bash数组: ar=( "one" "two" "three" "four") 使新数组看起来像这样的最佳方法是什么: ar-new=( "one" "one two" "one two three" "one two three four" ) 我煮过一些在for循环内使用for循环并使用seq的东西。有没有更好/更优雅的方法来实现这一点?

1
投票
4答案
8835 次观看

如何通过Shell脚本提取字符串的一部分?

该字符串的设置如下: href=" 我要提取的部分 ">[link]

0
投票
2答案
179 次观看

切换用户和输出变量内容

我正在编写一个bash脚本,想切换到另一个用户,cd进入用户bash_profile中MYDIR指定的目录,并列出内容。 当前,我有: read username su - app${username} -c ls $MYDIR 输出什么都没有,我的第一个猜测是从用户个人资料中读取$ MYDIR是一个问题,因为手动完成就可以了,例如 #su - appadmin #ls $MYDIR

4
投票
6答案
11957 次观看

在bash中执行for-each

我正在寻找编写一个Bash单行代码,该单行代码为列表中的每个项目调用一次函数。例如,给定列表 foo bar baz 和程序“ cowsay”,它将产生: _____ < foo > ----- \ ^__^ \ (oo)\_______ (__)\ )\/\ ||----w | || || _____ < bar > ----- \ ^__^ \ (oo)\____...

51
投票
2答案
18638 次观看

将bash脚本参数传递给子流程不变

我想编写一个简单的bash脚本,用作可执行文件的包装。如何将脚本接收的所有参数传递给可执行文件?我尝试过 /the/exe [email protected] 但这不适用于带引号的参数,例如 ./myscript "one big parameter" 运行 /the/exe one big parameter 这不是同一件事。

14
投票
5答案
4488 次观看

通过名称间接查找外壳变量

假设我在另一个变量中存储了一个变量名: myvar=123 varname=myvar 现在,我想仅使用$ varname变量来获得123。 有直接的方法吗?我发现没有内置的bash可以按名称查找,因此想出了这样的方法: function var { v="\$$1"; eval "echo "$v; } 如此 var $varname # gives 123 最后看起来还不错,但是我想知道我是否错过了更明显的事情。预先感谢!