我似乎在示例 9-14。
$ echo ${1:-0}
$ 0
$ echo ${2:-32767}
$ 32767
Run Code Online (Sandbox Code Playgroud)
所以我无法理解...
我正在运行该命令find . -name *.bak并收到错误"Paths must precede expression"错误.这个问题已得到解答,答案非常好,但我不明白为什么bash在运行find命令之前扩展了外卡?原始的例子.
它说find . -name *.bak扩大到find . -name tim.bak example.bak.有人可以解释为什么它被扩展,我不明白为什么这个功能为globs是个好主意.
当在KSH中针对Linux上的Oracle 11.2.0.4或更高版本的数据库通过SQLPLUS运行脚本时,是否可以检测DDL语句,退出并回滚所有以前的非DDL语句?所以这将是这样的,但增强了停止第一个DDL.
WHENEVER SQLERROR EXIT ROLLBACK
@script.sql
Run Code Online (Sandbox Code Playgroud)
有没有办法在PLSQL中设置异常处理,以便在第一个DDL语句执行之前立即退出?
我有一个功能需要为其逻辑更改IFS:
my_func() {
oldIFS=$IFS; IFS=.; var="$1"; arr=($var); IFS=$oldIFS
# more logic here
}
Run Code Online (Sandbox Code Playgroud)
我可以将IFS声明为local IFS函数内部的内容,这样就不必担心备份其当前值并在以后还原吗?
我有一个自定义命令,如下所示:
bashcustomCommand cfgAlert -i 1
Run Code Online (Sandbox Code Playgroud)
但是,值i可以是1 to 4
我想要修改自定义命令的任何内容,以便它可以解释i from 1 to 4单个命令中的所有值
截至目前,我写的如下:
bashcustomCommand cfgAlert -i 1
bashcustomCommand cfgAlert -i 2
bashcustomCommand cfgAlert -i 3
bashcustomCommand cfgAlert -i 4
Run Code Online (Sandbox Code Playgroud)
我想编写一个可以解释所有问题的命令 4 values
有人可以解释为什么下面的bash代码会回显“选择是一个数字!”。当我在读取提示下键入“ 1”时:
read choice
re='^[0-9]+$'
if [[ $choice =~ $re ]]; then
echo "choice was a number!"
else
echo "choice was NOT a number!"
fi
Run Code Online (Sandbox Code Playgroud)
...但是没有中间$re变量的相同代码将回显“选择不是数字!”:
read choice
if [[ $choice =~ '^[0-9]+$' ]]; then
echo "choice was a number!"
else
echo "choice was NOT a number!"
fi
Run Code Online (Sandbox Code Playgroud)
?
我有一堆文本文件,其中包含字节顺序标记 (BOM),并且它们还具有 CRLF (\r\n) 结尾来标记行尾。例如,这是八进制转储片段:
$ od -bc P21_T_3-28-2022.txt
0000000 357 273 277 163 164 141 147 145 040 061 015 012 120 154 141 171
357 273 277 s t a g e 1 \r \n P l a y
0000020 151 156 147 040 164 150 145 163 145 040 164 167 157 040 147 141
i n g t h e s e t w o g a
0000040 155 145 163 054 040 162 145 155 …Run Code Online (Sandbox Code Playgroud) 我有一些名称如下的文件:
name_"some thing".svg
Run Code Online (Sandbox Code Playgroud)
我无法对他们进行任何操作。移动、重命名、删除、编辑等。如何重命名或删除这些文件?
我已经在这里用谷歌搜索并搜索了这个问题,但没有提出的解决方案对我有用。我总是遇到同样的错误:
No such file or directory.
Run Code Online (Sandbox Code Playgroud)
到达它们的完整路径是:
/media/bruno/HDD Externo/temp/
Run Code Online (Sandbox Code Playgroud)
这是一个 USB 外置硬盘。
grep如果有匹配,我想要一个字符串并剪切一个字段.问题是,无论是否匹配,命令的输出$?都是0,这很奇怪.请参阅下面的输出:
$ R=`grep g09 tor1.sh | cut -d ' ' -f2`
$ echo $R
test
$ R=`grep g09 tor1.sh | cut -d ' ' -f2`
$ echo $?
0
Run Code Online (Sandbox Code Playgroud)
如你所见,有一个匹配但是$?为0.现在看到这个:
$ R=`grep g09 tor.sh | cut -d ' ' -f2`
$ echo $R
$ R=`grep g09 tor.sh | cut -d ' ' -f2`
$ echo $?
0
Run Code Online (Sandbox Code Playgroud)
在这里,g09没有匹配但$?仍为0.为什么?
最近,我遇到使用 bash shell 创建一个具有日期格式的文件名,如下例所示
touch 22/04/2017
Run Code Online (Sandbox Code Playgroud)
它会抛出错误,这意味着您无法使用此格式创建文件名。
touch: 22/04/2014: No such file or directory
Run Code Online (Sandbox Code Playgroud)
有人知道吗?
为什么下面的代码根本没有终止?
int main()
{
printf("Hello world\n");
main("hello",32);
return 0;
}
Run Code Online (Sandbox Code Playgroud) 我正在做一个项目,在那里我有一个名为“开始时间”的列日期的字典。我需要提取月、小时和年、星期几。我现在被困住了,我有下面的代码。
{if city =='NYC':
datn = datum[('starttime')]
datn = dt.strptime(datn,"%m/%d/%y %H:%M:%S")
hour = dt.strftime(datn,"%H")
year = dt.strftime(datn,"%y")
elif city == 'Chicago':
datc = datum[('starttime')]
datc = dt.strptime(datc,"%m/%d/%y %H:%M")
month = dt.strftime(datc,"%m")
hour = dt.strftime(datc,"%H")
year = dt.strftime(datc,"%y")
else:
datw = datum[('start date')]
datw = dt.strftime (datw,"%m")
hour = dt.strftime(datw,"%H")
year = dt.strftime(datw,"%y")
return (month, hour, day_of_week)
}
Run Code Online (Sandbox Code Playgroud)
我的导入语句位于代码的顶部,如下所示:
from datetime import datetime
Run Code Online (Sandbox Code Playgroud)