Questions tagged «test»

这是关于Unix实用程序“ test”的,它也被称为“ [”或其外壳语法[[…]]的变体。对于有关测试软件和设置的问题,请使用“测试”标签。

3
[-t 1]检查什么?
我刚刚找到了一种从Windows zsh启动bashWindows 时启动的方法 https://www.howtogeek.com/258518/how-to-use-zsh-or-another-shell-in-windows-10/。 建议在的末尾添加以下代码.bashrc。 # Launch Zsh if [ -t 1 ]; then exec zsh fi 什么[ -t 1 ]意思 这是真的吗? 然后,我可以这样做吗? exec zsh
13 bash  shell  zsh  test 

3
bash的条件表达式中-a和-e有什么区别?
来自man bash: CONDITIONAL EXPRESSIONS [...] -a file True if file exists. [...] -e file True if file exists. 那么[ -a $FILE ]和之间有什么区别[ -e $FILE ](如果有)? 如果没有真正的区别,为什么存在两个用于相同目的的标志?
12 bash  shell  test 

3
在POSIX sh中执行-nt / -ot测试
即使大多数外壳程序在“ POSIX模式”下运行,内置的test和[实用程序在大多数外壳程序中都具有-nt(“比...更新”)和-ot(“比...更旧”)测试(对于在外壳上使用相同名称的外部实用程序也是如此)我可以访问的系统)。这些测试用于比较两个文件上的修改时间戳。它们的文档化语义在不同的实现中略有不同(关于一个或另一个文件不存在的情况),但是它们不包含在POSIX规范中。为test实用。 他们不结转到test时,从[KornShell]壳去除有条件的命令,因为他们没有被列入工具test内置于历史实现实用sh工具。 假设我想比较/bin/shshell脚本中文件之间的修改时间戳,然后根据一个文件是否比另一个文件新来采取措施,如 if [ "$sigfile" -nt "$timestamp" ] || [ "$sigfile.tmp" -nt "$timestamp" ] then return fi ...除了make(这至少会使脚本的其余部分难以理解)之外,我还可以使用其他什么实用程序?还是我应该假设没有人会在“的历史实现sh” 上运行脚本,或者辞职以编写像这样的特定 shell bash?
11 files  timestamps  posix  test 

1
切勿将`-a`或`-o`运算符与`[`
斯特凡·查泽拉斯写道: 一些规则,例如 总是引用变量 永远不要使用-aor -o运算符(使用多个[命令以及&&and和||shell运算符) [使用POSIX shell 使其可靠。 为什么“从不使用-aor -o运算符”? 我该如何“使用几个[命令以及&&and和||shell运算符”?
11 bash  shell  test 

3
安排每月的最后一天
我从一条指令中了解到如何在一个月的最后一天安排脚本: 注意: 精明的读者可能会想知道如何设置命令才能在每月的最后一天执行,因为您无法将dayofmonth值设置为覆盖每个月。这个问题困扰着Linux和Unix程序员,并催生了许多不同的解决方案。一种常见的方法是添加一个if-then语句,该语句使用date命令检查明天的日期是否为01: 00 12 * * * if [`date +%d -d tomorrow` = 01 ] ; then ; command1 该命令每天中午12点进行检查,以查看是否是该月的最后一天,如果是,则cron运行命令。 [`date +%d -d tomorrow` = 01 ]工作如何? 陈述正确then; command1吗?
10 shell-script  cron  date  test 

3
为什么看到具有400个权限的文件可由root写入但由用户只读?
如果我以非特权用户身份创建文件,然后将权限模式更改为400,则该用户将其正确地视为只读: $ touch somefile $ chmod 400 somefile $ [ -w somefile ] && echo rw || echo ro ro 一切都很好。 但是随后出现了root: # [ -w somefile ] && echo rw || echo ro rw 有没有搞错?当然,root可以写入只读文件,但不应养成它的习惯:最佳实践将倾向于指示我应该能够测试写入许可位,如果没有,则设置它这种方式是有原因的。 我想我既想了解为什么会这样,又要在测试未设置写位的文件时如何得到错误的返回码?

4
为什么即使$ 1不是1,也总是选择'if [$ 1 =“ 1”]'分支?
我有一个名为“ teleport.sh”的shell脚本,如下所示: if [ $1="1" ]; then shift mv "$@" ~/lab/Sun elif [ $1="2" ]; then shift mv "$@" ~/lab/Moon elif [ $1="3" ]; then shift mv "$@" ~/lab/Earth fi 当我执行时: sh teleport.sh 2 testfile 这testfile被移到了~/lab/Sun目录,这让我很困惑,因为我没有将1或1传递给该脚本。 怎么了
10 bash  shell  test 

5
如何根据星期几使用If-Else查询?
问题:我需要检查今天是否是星期四,并根据这种情况的结果执行不同的操作。我尝试了两种不同的方法: 获取日期名称: DAYOFWEEK=$(date +"%a") echo DAYOFWEEK: $DAYOFWEEK if ["$DAYOFWEEK" == "Thu"]; then echo YES else echo NO fi 获取日数: DAYOFWEEK=$(date +"%u") echo DAYOFWEEK: $DAYOFWEEK if ["$DAYOFWEEK" == 4]; then echo YES else echo NO fi 在这两种情况下,即使应为“是”,输出也为“否”。怎么了?

2
POSIX测试和-a
我使用checkbashisms检查了我的脚本,并收到以下警告: possible bashism in check_ssl_cert line 821 (test -a/-o): if [ -n "${ALTNAMES}" -a -n "${COMMON_NAME}" ] ; then 在POSIX规范的4.62.4节中,我发现 primary -a primary对binary和primary的结果执行二进制运算。-a运算符优先于-o运算符。 为什么-a和-o被认为是不可携带的?

4
为什么`==`在zsh和bash中的[[…]`内部表现不同?
在执行此操作时,我得到了期望的结果bash: [ "a" == "a" ] && echo yes 它给了我yes。 但是当我在中执行此操作时zsh,我得到以下信息: zsh: = not found 为什么同一命令(/usr/bin/[)在不同的Shell中表现不同?
9 bash  zsh  test 

3
在bash脚本中等待网络
我正在运行一个脚本,该脚本依赖于网络正常运行并安装网络共享。该脚本在登录时运行(启动后会自动发生)。问题在于,在脚本运行时,我通常还没有IP地址(DHCP)。目前,我只是将脚本休眠15秒钟,但是我根本不喜欢这种方法,因为我希望能够告诉用户是否有问题。 我的计划是,在没有IP地址的情况下进行循环,然后再继续。至关重要的是,它必须在一段时间后超时。我if [ ifconfig | grep "192.168.100" ];想到的是,但是发生的是grepconsumes ];和不喜欢它。然后bash也变得不高兴,因为它找不到那个];grep吃了。然后,我什至没有执行超时。 有人建议保留一个变量,并在每次迭代中睡一秒钟,然后每次增加该变量。这是我完整的(不起作用的)脚本(我对bash脚本还很陌生): x=0 while [ ifconfig | grep "192.168.100." > /dev/null ]; do echo "no nework" if "$x" -gt 200; then #Time out here exit 1 x=$((x+1)) sleep .1 fi done #continue with rest of script... 任何朝着正确方向的指针将不胜感激!

3
`man test`中的[[EXPRESSION],[]和[OPTION]是什么意思?
审查man test,我看到在大纲test的可能性test EXPRESSION和可能性test。 [ EXPRESSION ], [ ] and [OPTION下面是什么意思? 为什么括号是空的,为什么会[OPTION漏掉括号?有人可以帮我解释一下吗? NAME test - check file types and compare values SYNOPSIS test EXPRESSION test [ EXPRESSION ] [ ] [ OPTION
8 test 

2
[[$ variable]]和[[-n $ variable]]之间的区别?
用bash表示,[[ $variable ]]并且[[ -n $variable ]]完全等效吗?从下面的输出来看,似乎是这种情况,但是我看到两种用法都在shell脚本中很普遍。 $ z="abra" $ [[ $z ]] $ echo $? 0 $ [[ -n $z ]] $ echo $? 0 $ z="" $ [[ $z ]] $ echo $? 1 $ [[ -n $z ]] $ echo $? 1 $ unset z $ [[ $z …
8 bash  shell  test 
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.