最近脚本工作正常,但是从某些日子我收到这样的消息,而运行readlink -f "$0"命令: readlink: illegal option — f usage: readlink [-n] [file …] 我正在运行以下代码进行debugging: #!/bin/sh DIR=`pwd` RLPATH=`which readlink` RLOUT=`readlink -f — "${0}"` DIROUT=`dirname — ${RLOUT}` echo "dir: ${DIR}" echo "path: ${PATH}" echo "path to readlink: ${RLPATH}" echo "readlink output: ${RLOUT}" echo "dirname output: ${DIROUT}" 输出: # ./debug.sh readlink: illegal option — f usage: readlink [-n] […]
我有一个包含西class牙文字的数据库。 它包含像sueño这样的文字,其中有“特殊字符”。 MySQL数据库sorting规则设置为支持外来字符的utf-8-general-ci,所以数据库应该没问题。 我有一个python脚本,我在bash shell中运行,并返回数据库中的所有单词,包括单词sueño。 问题是,bash shell不能正确显示“sueño”这个词。 n(在其上方有波浪号)在bash shell中显示时出现乱码。 所有其他没有特殊字符的英文单词都会正确显示。 有什么办法可以在bash shell中启用外来字符(特殊字符)支持吗? 公关感谢
如何find在指定目录的第二级不存在的bash文件夹? 我有像这样的结构: – a — aa — aaa —- myfolder <- if this folder dosen't exist I need to know that — ab — abc —- myfolder <- if this folder dosen't exist I need to know that 我需要在每个“一个”二级子文件夹中find不存在的文件夹“我的文件夹”。 你能帮我吗?
我试图在Linux上做一个兼容的“say”命令。 到目前为止这工作: alias say='echo "$1" | espeak -s 120 2>/dev/null' 我将它添加到/etc/bash.bashrc。 问题是,这是从my_ruby_file.rb调用的。 我明白了什么是问题,但是我不能改变这个文件。 Ruby文件使用sh,而不是bash。 我的问题是,我怎样才能使用这个别名,所以say可以在所有的shell?
当开发一个应该运行在各种Unix / Linux衍生产品上的shell脚本时,我有时会遇到这样的问题:与其他系统相比,某些工具必须以不同的方式被调用。 例如,如果参数不同。 我不知道解决这个问题的最好方法是什么。 我是否应该使用uname来检查操作系统名称,并依靠这个以不同的方式执行该工具,或者是否有任何“更好”的方法,某种“能力”检查shell命令和工具? 所讨论的系统例如是Linux,Mac OS X,Solaris和Irix–当涉及到工具和shell命令的能力时,这两者完全不同。
我遇到麻烦让cron基于在bash脚本中设置的预定义条件发送附件。 以下是我的/ etc / crontab设置: SHELL=/bin/bash PATH=/sbin:/bin:/usr/sbin:/usr/bin [email protected] [email protected] 0,30 * * * * root /some/bash/script bash脚本包含: #!/bin/bash PATH=/bin:/sbin:/usr/sbin:/usr/bin:/usr/local/bin if [ -s /var/log/test ]; then echo "test" | mailx -s "test" -a /var/log/test -r [email protected] [email protected] fi exit 0 问题是,尽pipetesting文件是空的,但cron有时会发送一封电子邮件。 有时主题头“test”被cron用自己的主题头覆盖。 没有设置“MAILFROM”,cron将使用root,尽pipe在mailx中的设置。 我对cron很新,所以我不太确定自己是否做得正确。 如果有人能指出是什么原因造成这个问题,我将不胜感激。
我有一个简单的bash脚本,作为普通用户运行良好。 从postfix启动时,它以nobody身份运行:没有人阻止许多命令的工作。 脚本可能在运行时更改为另一个用户帐户,以允许其他程序运行? 谢谢
我需要通过非常慢的链接复制到多个目的地的文件夹。 目前我使用find创build一个文本文件。 find "$sourcedir" -exec ls -la {} \; > "$statefile" 然后,我将它与以前创build的文件进行比较,以确定脚本是否应该退出或执行一些rsyncs。 最后,新的状态文件在下次脚本运行时变成旧的状态文件。 if ! diff "$statefile" "$statefile".old 有没有更好的方法来减less源的资源使用? (与Debian上的bash兼容。) 我应该只是运行第一个rsynd和更改后,其余的呢? 如何判断rsync是否在第一个rsync之后实际上修改了任何文件?
我有一个脚本,向用户提出一些问题,并重复问题,直到用户回答某个问题。 当一个可接受的答案被读取时,这是通过一个无限循环来完成的: while true do read -p "Which helper do you prefer (cache, store)? " HELPER if [ "$HELPER" = "store" -o "$HELPER" = "cache" ] then break else error "Invalid option. Choose again" fi done 独立调用时工作正常。 问题是当我在一个| while read …执行这个脚本 | while read …循环: # find scripts that should be run as non-root user, […]
我正在为SOHOnetworking设置Samba共享,并希望知道删除Samba用户的Bash Shell启动文件(即.bash_logout , .bash_rc , .profile )是否安全/可取。 假设相应的用户不能login到Samba运行的系统(他们的loginshell被设置为/bin/false ),那么删除这些文件时是否有任何缺点?