标签: bash

无法编辑 ~/.bash_profile: -bash: $'\r': 命令未找到

我在 Windows 7 上安装了 CygWin。使用记事本,我编辑了我的 ~/.bash_profile 文件以添加到 PATH 变量中……

PATH="${PATH}:/cygdrive/c/apache-ant-1.8.2/bin"
Run Code Online (Sandbox Code Playgroud)

现在,当我通过 SSH 连接到我的 Windows 机器时,我收到了这个错误......

-bash: $'\r': command not found
-bash: $'\r': command not found
-bash: $'\r': command not found
-bash: $'\r': command not found
-bash: $'\r': command not found
-bash: /home/dev/.bash_profile: line 39: syntax error: unexpected end of file
Run Code Online (Sandbox Code Playgroud)

我的 PATH 没有设置。有谁知道我该如何纠正这个问题?

windows-7 cygwin bash

4
推荐指数
1
解决办法
2万
查看次数

使用 exec 查找:如何对每个文件执行多步条件操作

我在目录结构中有一堆 php 文件说 /mylibs
我想php -l $file在每个 php 文件上运行一个简单的检查语法错误的文件

find /mylibs -type f -iname "*.php" -exec php -l {} &>/dev/null \;
Run Code Online (Sandbox Code Playgroud)

这是第一步, &>/dev/null 会从 php 中获取详细输出(是否发现语法错误)

php -l如果没有发现错误取决于返回0赖以,我想将它们拷贝到其它目录的发言权/mybin。为了检查这是否按预期工作,我试过

find /mylibs -type f -iname "*.php" -ok php -l {} &>/dev/null ; echo $? \;
Run Code Online (Sandbox Code Playgroud)

但这只是在终端上打印 1 并且不要求确认(-ok 与交互式确认后的 -exec 作用相同)

我在这里做错了什么?这是不可能的吗?

linux bash find

4
推荐指数
1
解决办法
3965
查看次数

shell 脚本中的“意外标记 '$'\r'' 附近的语法错误”

我正在编写脚本,但在第 2-3 行出现错误。错误是这样打印的:

./ex6.sh: line2: $'\r': command not found
./ex6.sh: line3: syntax error near unexpected token '$'\r''
./ex6.sh: line3: 'fund ()
Run Code Online (Sandbox Code Playgroud)

该文件名为ex6.sh. 有人可以就为什么会发生此错误提供一些指导吗?

#!/bin/sh

func () 
{
if [ "$1" == "" ]; then
echo "Default";
for i in `find` ; 
do
    if [ -d $i ]; then
        echo $i "is a directory";
    fi
    if [ -f $i ]; then
        if [ "$i" != "./script.sh" ]; then
            echo $i "is a file";        
        fi
    fi
done
fi

if [ …
Run Code Online (Sandbox Code Playgroud)

bash

4
推荐指数
1
解决办法
3万
查看次数

如何使用“adduser”创建具有额外字段(例如工作电话号码)的用户?

我需要使用adduser从命令行添加用户。目前,我正在做

sudo adduser -g someGroup -c "John Doe" dojohn 
Run Code Online (Sandbox Code Playgroud)

但我希望该命令还包含一个“工作电话号码”,例如777 222 1342. 我确定它与 有关adduser.conf,但无法在网上找到有关它的更多信息。

如果相关:
操作系统:Ubuntu Linux,外壳:bash
用户:John Doe,用户名:dojohn,工作电话号码:777 222 1342

linux bash

4
推荐指数
1
解决办法
1277
查看次数

删除 shell 提示中的长目录列表

我想在 shell 提示中删除当前目录的长列表。

当你使用一个小的 shell 窗口并且它占据了窗口中的整个空间时,它有时会很烦人

我宁愿在提示符下只显示当前目录。

root@Kiran:~/Downloads/Director1/Director2/Director3/Director4# 我更喜欢这样的东西:root@Kiran:...Directory4#

甚至更好,

根:目录4#

谢谢

linux bash shell

4
推荐指数
1
解决办法
311
查看次数

在文件列表中搜索文本

我正在尝试在文件中执行双重搜索并返回文件名。

我正在使用

find ./ -iname '*txt' | xargs grep "searchtext" -sl
Run Code Online (Sandbox Code Playgroud)

查找其中包含“searchtext”的文件名。

命令正在返回文件列表。

如何在那些已经找到的文件中找到“othersearchtext”并以相同的方式显示它们?

linux search bash grep find

4
推荐指数
1
解决办法
694
查看次数

如何在 bash 中暂停 bash

是否可以暂停由另一个 bash 调用的 bash?例如,如果我曾经su成为一个不同的用户,但想暂时切换回我自己的用户。再举一个例子,在 SSH 会话中,我可以使用 ~ 快捷方式 (~, ^Z) 挂起远程 shell 并返回到我的本地 shell(但这显然是 SSH 功能,而不是 shell)。

bash 拦截 ^Z 以进行自己的过程控制,因此它必须是一个单独的命令(如果它甚至受支持)。但是试图找到它只会导致有关正常过程控制的信息。

keyboard-shortcuts bash shell process

4
推荐指数
2
解决办法
1392
查看次数

退出代码128,是什么原因?

根据定义,退出代码 128 表示“无效的退出参数”。但是我总是得到 255(退出状态超出范围),以防参数像浮点数一样无效。

这是我的 linux 发行版上的专有实现吗?

# exit 1.234
exit
bash: exit: 1.234: numeric argument required

$ echo $?
255   //this should be 128?

# exit -1
exit

$ echo $?
255   //this is okay
Run Code Online (Sandbox Code Playgroud)

linux bash exit exit-code

4
推荐指数
1
解决办法
2万
查看次数

在bash中获取别名的值

我最近从tcsh中切换到bash的,我已经习惯了能够做这样的事情sudo `alias netstat`,但由于alias给了name=value在bash,我不能再这样下去了。bash 中是否有等价物,所以我不必这样做sudo `alias netstat | sed -r "s/.*='(.*)'/\1/"`

linux bash alias tcsh

4
推荐指数
2
解决办法
2856
查看次数

在 Mac OS X 上批量运行 HTML Tidy?

我想对位于文件夹和子文件夹中的大量文件运行 HTML Tidy。我可以在终端中使用以下命令在单个文件上运行它:

tidy -f errors.txt -m -utf8 -i sample.html
Run Code Online (Sandbox Code Playgroud)

但是我怎样才能运行它指定一个根文件夹并让它遍历那里的每个 html 文件,然后在每个子文件夹上做同样的事情?

html bash shell shell-script macos

4
推荐指数
1
解决办法
1403
查看次数