小编lit*_*way的帖子

尝试在cygwin中运行脚本时出错

意外的文件结束.现在我搜索了错误,我明白我的脚本文件(在Windows中创建)有错误的结尾.我还读到我可以在文件上使用dos2unix命令来解决这个问题.但是,我试过了,cygwin告诉我:

-bash: dos2unix: command not found
Run Code Online (Sandbox Code Playgroud)

除了cygwin,我在远程unix终端上工作,我的脚本运行正常,甚至还有dos2unix命令.我已经在脚本文件中使用它,并尝试在cygwin中使用转换后的文件,并出现意外的文件错误结束.那有什么选择呢?

unix bash cygwin syntax-error

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

检查文件中的空行

我这里没有代码示例,因为我根本不知道如何执行此操作,但我有一个文件.合法的空行是仅包含换行符的行.空格或标签是非法的.

如何检查线路是否"合法空"?

如果它没有任何单词(我可以查看wc -w),我如何检查它是否没有空格或标签,只是换行?

所以我尝试过这样的事情:

while read line; do
    if [[ "$line" =~ ^$ ]]; then
        echo empty line
        continue
    fi
done < $1
Run Code Online (Sandbox Code Playgroud)

但它不起作用.如果我在一个空行中放一个"",它仍然认为它是空的.

unix bash file

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

如何从Bash中的脚本返回一个数组?

假设我有一个名为'Hello'的脚本.就像是:

array[0]="hello world"
array[1]="goodbye world"
echo ${array[*]}
Run Code Online (Sandbox Code Playgroud)

我想在另一个脚本中做这样的事情:

tmp=(`Hello`)
Run Code Online (Sandbox Code Playgroud)

我需要的结果是:

echo ${tmp[0]}  #prints "hello world"
echo ${tmp[1]}  #prints "goodbye world"
Run Code Online (Sandbox Code Playgroud)

相反,我得到了

echo ${tmp[0]}  #prints "hello"
echo ${tmp[1]}  #prints "world"
Run Code Online (Sandbox Code Playgroud)

换句话说,每个单词都放在tmp数组中的不同位置.我如何得到我需要的结果?

arrays bash

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

测试一个类的例子

我有一个吱吱声的问题,我是全新的,所以我问的是基础知识.我创建了一个类

Object subclass: #Course
instanceVariableNames: 'id name day time isTwoHoursLong'
classVariableNames: ''
poolDictionaries: ''
category: 'Kernel-Objects'
Run Code Online (Sandbox Code Playgroud)

它实现了以下方法:

isTwoHoursLong: aBoolean
(aBoolean isMemberOf: Boolean) 
    ifFalse: [self error: 'invalid input value']
    ifTrue: [isTwoHoursLong:=aBoolean.].
Run Code Online (Sandbox Code Playgroud)

aBoolean必须为true或false(布尔值的实例).现在我尝试使用该方法:

|c1|
c1:=Course new.
c1 isTwoHoursLong:true.
Run Code Online (Sandbox Code Playgroud)

但由于某种原因,我陷入了发送错误的ifFalse选项.有人可以帮忙清理一下吗?

boolean smalltalk class squeak

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

bash中的case语句

我正在尝试使用case语句来确定我是否有合法的命令.它看起来像这样:

function commandTest {
    case $1 in
    –score) echo "something";;
    *)      echo "unknown";;
    esac
}
Run Code Online (Sandbox Code Playgroud)

现在,如果我使用这样的功能,它不起作用.case虽然相同,但无法正确识别字符串

$ commandTest "-score"
unknown
Run Code Online (Sandbox Code Playgroud)

它不打印"东西".那我在这里做错了什么?

bash sh hyphen

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

标签 统计

bash ×4

unix ×2

arrays ×1

boolean ×1

class ×1

cygwin ×1

file ×1

hyphen ×1

sh ×1

smalltalk ×1

squeak ×1

syntax-error ×1