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...

33
投票
4答案
56729 次观看

文件外壳脚本的编码

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

3
投票
2答案
14539 次观看

KornShell Printf-填充字符串

我正在尝试编写一个KornShell(ksh)函数,该函数使用printf将字符串填充到特定宽度。 示例: 致电 padSpaces Hello 10 输出 'Hello ' 我目前有: padSpaces(){ WIDTH=$2 FORMAT="%-${WIDTH}.${WIDTH}s" printf $FORMAT $1 } 编辑:看来,这本身就是可行的,但是当我在脚本中分配它时,除了第一个空格外,它似乎丢失了所有内容。 TEXT=`padSpaces "TEST" 10` TEXT="$...

0
投票
3答案
384 次观看

准确的命令历史的命令/脚本?

当多个用户使用“ SAME USERID&PASSWORD”登录时,是否存在一些命令/脚本来知道在solaris机器上执行的“ EACH&EVERY”命令(如果可能,则带有时间戳)? 历史命令不正确。它仅显示该用户执行的命令的历史记录,有时仅显示其中一些命令的历史记录,但是当多个用户访问系统时,它是不准确的。 关于, AKS

133
投票
12答案
190219 次观看

Shell脚本中的字符串不区分大小写的比较

==运算符用于比较Shell脚本中的两个字符串。但是,我想比较两个字符串而忽略大小写,该怎么办?有任何标准命令吗?

5
投票
4答案
15649 次观看

Perl脚本中的SQL * Plus

我正在尝试使用 SQL * Plus 连接到表并获取 Perl 脚本中存储数据,并将输出存储在Perl变量中。 在shell脚本中,我会这样做: SQL_RESULT=`sqlplus -s ${CONNECT_STRING} << EOF ${SQLPLUS_SETTINGS} select foo||'|'||bar ||'|'|| xyz from temp where dfg='some'; exit; EOF` 但是我如何在Perl中做到这一点?

0
投票
1答案
448 次观看

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

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

2
投票
2答案
549 次观看

使用Ruby popen和PostgreSQL createuser

我正在尝试编写一个非常简单的rake任务(并将其合并为一个相当大的rake任务),该任务将调用以下命令并传递随机生成的密码。现在,让我们甚至伪造随机数,并为其设置密码“ test”: createuser -SDPRE test 我执行任务的代码如下: desc "Create a test user with test password" task "test" do puts('Creating User') IO.popen "createuser -SDRPE test", 'w+' do |io| io.write "test\ntest\n" ...

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
投票
5答案
1686 次观看

在Linux上动态设置环境变量

我目前正在寻找一种通过简单的shell脚本在Linux中设置环境变量的方法。在脚本中,我当前正在使用“导出”命令,但是,此脚本仅在需要系统范围的脚本中具有作用域。 无论如何,我可以通过shell脚本来做到这一点,还是需要使用另一种方法?

2
投票
2答案
1180 次观看

可可壳命令权限

我正在开发我的第一个Mac App时,shell命令存在一些问题... 我试图找出如何获得用户可以输入密码的权限窗口。我想将图片复制到系统文件夹中,并更改另一张图片的名称。我尝试更改“登录”窗口的背景。 命令1:“ sudo mv DefaultDesktop.jpg DefaultDesktop_copy.jpg” 命令2:“ sudo cp /path/of/image.jpg DefaultDesktop.jpg” 使用终端,这非常容易。但是在界面上,我想要此提示询问密码。 这是我的第一个命令代码: - (void)copyDefaultBackgroun...

5
投票
5答案
7929 次观看

我的shell脚本如何控制zenity窗口的位置?

当我的垃圾邮件过滤器守护程序过滤一组邮件时,我正在使用zenity发布一个简单的通知。当前,此消息被发布到屏幕中间,这太麻烦了。我想将其发布到左上角。但是,zenity不支持-geometry选项,该选项应该是所有X应用程序的标准配置,它的文档提供了控制窗口高度和宽度的选项,但不提供放置位置的控制。 是否有一种方法可以控制发布zenity窗口的(x,y)坐标? 如果没有,是否有办法通过修补X资源或窗口管理器(我正在使用fvwm)来解决此问题? 编辑:以下内容在~/.fvwm2rc(fvwm版本2.5.26)中不起作用: Style "Information" Positi...

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
投票
1答案
6589 次观看

将变量从一个Shell脚本导出到另一个

我有一些脚本,它们的第一部分看起来相同。这部分的功能是确定脚本在哪台计算机上运行,并相应地设置几个变量。看起来像这样: ENV=`echo $LOGNAME | cut -c1-8` if [ $ENV = "vrt3400b" ] then echo "Using TEST specific settings." NAME_PREFIX="tst" GROUP_NUMBER=`echo $USER | cut -c4-5` GROUP_NUMBER_SUFFIX=00`echo $USER | cut -c8-9` ... elif [ $EN...

1
投票
1答案
213 次观看

第二个先前的命令执行

在Unix中,!!是上一个命令的别名: indibm202 21: date Tue Nov 10 17:38:13 IST 2009 indibm202 22: !! date Tue Nov 10 17:38:16 IST 2009 indibm202 23: 倒数第二个命令的别名是什么?

1
投票
4答案
3145 次观看

Shell脚本验证工具

在UNIX平台上是否有任何用于Shell脚本的验证工具。 像脚本完成后一样,该工具会对其进行验证并警告我们错误吗?

1
投票
4答案
764 次观看

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

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

6
投票
6答案
8323 次观看

在Shell脚本中使用日期前缀日志

我有一个带有很多echo语句的shell脚本。我想在输出的每一行前面加上时间/日期。 所以,我更换了所有 echo "Some text1" echo "Some text2" 使用 echo "`date +%y/%m/%d_%H:%M:%S`:: some text1" echo "`date +%y/%m/%d_%H:%M:%S`:: some text2" 这很丑。无论如何,有没有创建别名(或类似于C中的#define的别名)以使其更简洁。 很明显,这样做: DATE=`date +%y/%m/%d_%H:%M:%S` echo "$DATE:: so...

0
投票
4答案
934 次观看

如何测试字符串是否以Shell中的前缀列表中的前缀开头

我对shell脚本有要求。我从一个文本文件中获得此位置信息;它总是有效的。 /opt/sasuapps/senny/publish/gbl/SANDHYA/drop1 我需要检查目录是否为空,是否已完成。如果目录不为空,则需要删除该位置下的文件和目录。 作为安全检查的一部分,我想检查从文件(/ opt / sasuapps / senny / publish / gbl / SANDHYA / drop1)获取的放置位置是否以以下任意一项开头。 /mnt/senny_publish/gbl /mnt/senny/publish/gbl /opt/sasuapps/senn...

1
投票
1答案
1532 次观看

定制设计的Shell在Windows 7上不起作用

我们有一个服务器/客户端网吧管理应用程序,该应用程序过去可以在Windows XP和Vista上正常运行,但现在无法在Windows 7上运行。 该客户端应该在网吧的客户端PC上被“锁定”,这意味着它通过更改注册表项来取代Windows资源管理器 "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon\Shell" 到客户端应用程序的EXE文件的路径。 这在Windows XP和Windows 7上都运行良好,既没有运行Explorer.exe也没有运行Client.exe,只显示了一...

3
投票
2答案
278 次观看

如何确定“临界点”,尤其是在编写正则表达式时?

G'day, 编辑:尽管此问题涵盖了很多编程中可能出现的情况,但我始终注意到,使用正则表达式,尤其是某些地方。在Perl中并通过shell编程,试图捕获最后的一些极端情况: 需要很多很多时间来扩展您的正则表达式,这可能意味着 正则表达式过于复杂,导致 由于正则表达式的复杂性,尤其是在Perl中不存在的情况下,将来的维护工作会令人头疼。因此,没有很好的/ x选项可让您轻松地记录正则表达式的片段。 我在回答这个问题“ ”,我的回答的一部分是,您已经明白了一点在哪里追逐边缘案例的最后百分之几是不值得花费额外的精力和时间来扩展正则表达式,shell脚本等的。仅标记边缘案例并手动进行...

0
投票
2答案
2533 次观看

在通过Shell脚本执行SQL并使用结果集时需要帮助

我目前正在请求构建一个Shell脚本,以使用SQL(Oracle)从表中获取一些数据。我正在运行的查询返回许多行。有没有办法使用类似结果集的方法? 当前,我将其重定向到文件,但无法再次使用该数据进行进一步处理。 编辑:感谢您的回复Gene。结果文件如下: UNIX_PID 37165 ---------- PARTNER_ID prad -------------------------------------------------------------------------------- XML_FILE ----------------------------...

0
投票
3答案
1412 次观看

SHBrowseForFolder不适用于win7中的网络选择

我在代码中使用SHBrowseForFolder。在XP中效果很好。但是我发现它在具有相同代码的Windows 7中不能很好地运行。当我单击网络时,它什么也没做。但是它可以在XP中扩展。顺便说一句,我有权访问另一台计算机的网络,然后尝试使用资源管理器访问资源,没关系! 有人可以告诉我如何解决此问题吗?

3
投票
3答案
3245 次观看

当由cron运行时,shell脚本中使用的环境变量在日志文件中显示为空白

请原谅我的无知,但是我对Shell脚本和Linux中环境变量的使用有些陌生。 我有一个脚本来执行MySQL数据库的备份。我在脚本中有以下几行用于记录数据库的成功转储: output=`date; echo "Database export successful from $ENV_HOSTNAME to $BACKUP_HOSTNAME"` echo $output >> /var/log/errorLog 我在/ etc / profile中定义了变量(ENV_HOSTNAME和BACKUP_HOSTNAME),如下所示: export ENV_HOSTNA...

1
投票
3答案
795 次观看

Bazaar语法忽略与通配符匹配的目录

我确定这是一个愚蠢的问题,但是使用Bazaar忽略我的_Resharper.*目录的语法是什么?我试过忽略:\_Resharper*.* ./\_Resharper*.*、**/\_Resharper*.*,以及通配符上的变体。不管我做什么,它都会继续选择目录。

27
投票
3答案
6178 次观看

如何获取vim的:sh命令来获取我的bashrc?

每当我使用:sh在vim中启动shell时,它都不会获取〜/ .bashrc文件。如何获得自动执行的功能?

0
投票
3答案
733 次观看

AWK:字段分隔符包含“ +”

echo -n 'a001~!+rr001~!+1~!+TEST DATA 1' | awk 'BEGIN {FS="~!+"} {print $2}' 我将字段分隔符设置为“〜!+”,并希望打印第二个字段。 AWK将带有rr001的多余+标记为+ rr001。 我在做什么错了?

2
投票
1答案
1617 次观看

如何在C Shell中从命令行输入设置多个单词变量

我正在编写一个脚本来搜索文件中的模式。例如 脚本名称模式file1 file2 filenN 我使用for循环遍历参数argv,如果提供了所有参数,它将完成工作。但是,如果仅提供一个参数(在这种情况下为pattern),则应要求输入一个或多个文件名,然后检查模式。如何设置变量以包括从命令行输入的多个单词,以便可以在循环中使用它。甚至更好的方法是可以将命令行输入分配给argv,因此我不必只使用两次相同的循环,因为它是不同的变量名(如果超过on参数,一个循环通过argv,第二个循环通过如果仅提供一个参数,则使用filenames变量)。以下是导致问题的脚本部分: set pat...

1
投票
3答案
7712 次观看

如何egrep变量-Unix shell脚本

我正在尝试使用egrep和regex验证输入。这是脚本(c-shell)中的代码行: echo $1 | egrep '^[0-9]+$' if ($status == 0) then set numvar = $1 else echo "Invalid input" exit 1 endif 如果我将echo传递给egrep,它可以工作,但是它也会在屏幕上打印变量,这是我不需要的。