相关疑难解决方法(0)

什么$?和Shell脚本中的$#代表?

我有以下两个代码块,我不太确定是什么$?和$#代表.请帮忙.

代码一

 #!/bin/bashUSERID="$1" 
 /bin/id $USERID 2>/dev/null
[ $? -eq 0 ] && echo "User found" || echo "User not found"

/bin/id -g $USERID 2>/dev/null
[ $? -eq 0 ] && echo "Group found" || echo "Group not found"    `


$ cat > mtable
Run Code Online (Sandbox Code Playgroud)

代码二

#!/bin/sh
#
#Script to test for loop
#
#
if [ $# -eq 0 ]
then
echo "Error - Number missing form command line argument"
echo "Syntax : $0 number"
echo "Use to print multiplication table …
Run Code Online (Sandbox Code Playgroud)

bash shell posix

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

if ["$ { - #*i}"!="$ - "]是什么意思?

在我的Oracle Linux框中,我发现了一块/etc/profile很难理解的脚本:

for i in /etc/profile.d/*.sh ; do
    if [ -r "$i" ]; then
        if [ "${-#*i}" != "$-" ]; then
            . "$i"
        else
            . "$i" >/dev/null 2>&1
        fi
    fi
done
Run Code Online (Sandbox Code Playgroud)

我的问题是在if语句中的变量${-#*i}$-.那是什么意思?为什么要添加else语句来重定向输出?谢谢!

linux bash shell

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

此 bash 代码如何检测交互式会话?

在 scp 出现一些问题之后(显然,它不喜欢我的文件中存在 bash 绑定命令.bashrc),我遵循了互联网上一个聪明人的建议(我现在找不到那个帖子),该建议放在顶部其.bashrc文件如下:

[[ ${-#*i} != ${-} ]] || return
Run Code Online (Sandbox Code Playgroud)

以确保除非在交互式会话中否则不会执行 bash 初始化。

现在,这有效了。但是,我无法弄清楚它是如何工作的。你能启发我吗?

根据这个答案,这$-是为 shell 设置的当前选项,我知道这${}是用于扩展变量的所谓“子字符串”语法。

但是,我不明白这${-#*i}部分。又为什么$-#*i不一样${-#*i}

bash shell

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

$ {1}和$ {*}有什么作用?

这个Nagios脚本使用${1}${*}喜欢这样

if [ "${1}" ]; then
    if [ "${ERRORSTRING}" ]; then
        echo "${ERRORSTRING} ${OKSTRING}" | sed s/"^\/ "// | mail -s "$(hostname -s): ${0} reports errors\
" -E ${*}
    fi
else
    if [ "${ERRORSTRING}" -o "${OKSTRING}" ]; then
        echo "${ERRORSTRING} ${OKSTRING}" | sed s/"^\/ "//
        exit ${ERR}
    else
        echo no zpool volumes found
        exit 3
    fi
fi
Run Code Online (Sandbox Code Playgroud)

做什么${1}${*}做什么?

linux bash nagios

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

什么是$?在bash?

我试图理解几年前由不再可用的人编写的脚本.该脚本引用$?了几次.这是什么?

PS谷歌无法帮助,因为它似乎剥夺$?了搜索词

bash

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

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

标签 统计

bash ×6

shell ×4

linux ×3

nagios ×1

posix ×1