Articles of shell

如果目录存在,则使用Unix Bash Shell编程

所以我试图进入一个bash shell脚本中的if语句,但我认为我做错了什么,反正这里是我的示例代码。 #!/bin/bash read sd if [ -d "~/tmp/$sd" ]; then echo "That directory exists" else echo "That directory doesn't exists" fi ;; 我是否指向正确的目录? 我想要用户input一些东西,将被放入“SD”,如果该子目录存在,那么它会说,如果不是,那么它会去其他人说,它不存在。

在linux中使用时清空文件

我试图在linux中清空文件,这是一个日志文件,所以它是连续写入。 现在我用了: echo -n > filename 要么 cat /dev/null > filename 但是所有这些都会产生一个带有换行符的空文件(或者我可以看到的奇怪的字符),在vi可以看到^ @ ^ @ ^ @ ^ @ ^ @ ^ @ ^ @ ^ @ ^ @ ^ @ ^ @ ^ @ ^我必须用vi和dd手工删除第一行然后保存。 如果我不使用vi adn dd我不能用grep来操作文件,但是我需要一个自动程序,我可以在shell脚本中写入。 想法?

如何从shell脚本中获取分叉的subprocess的进程ID(PID)

我相信我可以从父进程派生10个subprocess。 以下是我的代码: #/bin/sh fpfunction(){ n=1 while (($n<20)) do echo "Hello World– $n times" sleep 2 echo "Hello World2– $n times" n=$(( n+1 )) done } fork(){ count=0 while (($count<=10)) do fpfunction & count=$(( count+1 )) done } fork 但是,我怎样才能从我刚创build的每个subprocess获得pid? 谢谢。

检查IP有效性

如何检查shell脚本中IP地址的有效性,范围在0.0.0.0到255.255.255.255 ?

壳牌转移程序 – 这是什么?

在shell中,我们有命令转移,但是我在一些例子中看到了它的转移3 为什么有一个class后的数字? 和它有什么关系? 它能做什么 ? 例: echo “arg1= $1 arg2=$2 arg3=$3” shift echo “arg1= $1 arg2=$2 arg3=$3” shift echo “arg1= $1 arg2=$2 arg3=$3” shift echo “arg1= $1 arg2=$2 arg3=$3” shift 输出将是: arg1= 1 arg2=2 arg3=3 arg1= 2 arg2=3 arg3= arg1= 3 arg2= arg3= arg1= arg2= arg3= 但是当我补充说,它不正确显示它。

惊喜! shell提示命令行开关

我注意到bash shell可以为你的命令build议命令行开关。 只需input你的命令,一个破折号( – )和types选项卡。 shell将显示您可用的开关。 例如,尝试: andy@andyx:~$ java – 并按下标签 – 惊喜! 问题是: 我如何与此function接口。 也就是说,如果我编写一个要从控制台运行的程序,那么告诉shell哪些交换机可用的API是什么?

Bad:修饰符在$(。)中

我想在linux中设置环境variables,并通过给予命令做同样的事情 export PATH=$PATH:. 但在$(。)中获取错误错误:修饰符。 有人能帮助吗? 我尝试了bash shell和ksh

将AWK结果分配给variables

这应该是相当直接的,我不知道为什么我挣扎着。 我正在shell脚本中运行以下psql命令,以便确定在插入数据之前是否删除了所有索引。 INDEXCOUNT=$(psql -p $dbPort -U enterprisedb -d main_db -c "select Count(*) from all_indexes where index_schema = 'enterprisedb';") 此时,INDEXCOUNT等于“COUNT ——- 0” 现在,如果我回应以下行我得到我想要的结果 – echo $INDEXCOUNT | awk '{print $3}' 如何分配$INDEXCOUNT | awk '{print $3}'的值 $INDEXCOUNT | awk '{print $3}'给一个variables在“IF”语句中检查它? 例如: RETURNCOUNT=$INDEXCOUNT | awk '{print $3}'

带参数的别名

如果有可能使用zsh别名中的参数? 像这样的东西: alias ssh_nokia="ssh root@<ip_parameter>" 用法: ssh_nokia 192.168.1.2

如何获得通讯输出的第一列?

所以我试图使用awk获得通信输出的第一列。 我读了Tab作为comm的分隔符,所以我做了: awk -F"\t" '{print $1}' comm-result.txt 使用包含以下输出的comm-result.txt: comm -3 file1 file2 但是这似乎不起作用。 这个表示还需要空格字符作为分隔符,当我的文件包含多个空格时,我会得到奇怪的结果。 我怎样才能得到comm的第一列?