意外的文件结束.现在我搜索了错误,我明白我的脚本文件(在Windows中创建)有错误的结尾.我还读到我可以在文件上使用dos2unix命令来解决这个问题.但是,我试过了,cygwin告诉我:
-bash: dos2unix: command not found
Run Code Online (Sandbox Code Playgroud)
除了cygwin,我在远程unix终端上工作,我的脚本运行正常,甚至还有dos2unix命令.我已经在脚本文件中使用它,并尝试在cygwin中使用转换后的文件,并出现意外的文件错误结束.那有什么选择呢?
我这里没有代码示例,因为我根本不知道如何执行此操作,但我有一个文件.合法的空行是仅包含换行符的行.空格或标签是非法的.
如何检查线路是否"合法空"?
如果它没有任何单词(我可以查看wc -w
),我如何检查它是否没有空格或标签,只是换行?
所以我尝试过这样的事情:
while read line; do
if [[ "$line" =~ ^$ ]]; then
echo empty line
continue
fi
done < $1
Run Code Online (Sandbox Code Playgroud)
但它不起作用.如果我在一个空行中放一个"",它仍然认为它是空的.
假设我有一个名为'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数组中的不同位置.我如何得到我需要的结果?
我有一个吱吱声的问题,我是全新的,所以我问的是基础知识.我创建了一个类
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选项.有人可以帮忙清理一下吗?
我正在尝试使用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)
它不打印"东西".那我在这里做错了什么?