Questions tagged «shell-script»

有关shell脚本,由shell解释的可执行文件(bash,zsh等)的问题。

3
通过bash脚本编辑配置文件
我一直在尝试编写一个简单的bash脚本,该脚本将用于安装应用程序并更新其配置文件。我很难修改它的配置文件。 # DBHost=localhost DBName=test # DBPassword= 有什么建议可以使我得到如下修改吗​​? DBHost=localhost DBName=database DBPassword=password

4
如何通过Shell脚本从文件中删除任何字符串?
我尝试从中删除字符串.bash_profile。我的shell脚本运行时添加了字符串: 我在bash_profile上的字符串如下: # for Myapllication export MYAPP_HOME=/opt/myapp 我想通过删除.bash_profilemyapp时从中删除字符串rpm。 如何通过Shell脚本从文件中删除任何字符串?(或可能的替代方法)

2
使用Python Shebang查找所有文件
我正在尝试对大型源代码树执行PEP8检查。该树由各种语言的文件混合而成。这个想法是检查所有Python脚本而不必显式列出它们。这些文件中的大多数实际上没有.py扩展名。有没有一种简单的方法可以在shebang中找到带有单词Python的所有文件,或者找到在执行时将与Python一起运行的所有文件?

3
case +如何在大小写语法中实现等于或小于或等于
我的目标是使用(仅使用case+ esac)验证数字范围,然后打印该范围。因此,例如: 如果数字介于0到80之间,请打印 >=0<=80 如果数字介于81到100之间,则打印 >=81<=100 等等 >=0<=90仅当数字介于0和9之间时,下面的脚本问题才会打印。如何修复脚本,以便根据数字范围打印正确的输出? #!/bin/ksh read number case $number in [0-80]) echo ">=0<=80";; [81-100]) echo ">=81<=100";; [101-120]) echo ">=101<=120";; [121-300]) echo ">=121<=300";; esac

4
如何在给定文件(多个)中删除行尾的空白?
我已经厌倦了源文件中无用的空间,甚至已经配置了vim来显示它们。 问题是我经常(如果不是总是)不得不与我的同伴开发人员一起处理无用的空间。 我只想扫描源文件(使用正则表达式)并从所有给定文件中删除空格。 我已经在网上搜索(“删除空格删除”等),但找不到有用的东西。

6
从模板创建文本文件的工具
我必须定期从模板创建100多个文本文件。 我目前使用一个过于复杂的shell脚本。我认为有一种更聪明的方式来处理此问题,但我不知道如何。 我有一个“数据库”: # outputfile template data1 data2 data3 first.txt $template_main $text1 abcd 1234 second.txt $template_main $text2 efgh 5678 third.txt $template_other $text1 ij 90 和一个配置文件: template_main=main.txt template_other=other.txt text1=whatever text2=blah 模板是带有占位符(如%% data2 %%)的文本文件(可以更改占位符形式)。 有人知道有什么工具可以比复杂的Shell脚本更好地实现此目的吗?


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被认为是不可携带的?

2
逐行读取文件时请求用户输入
对于班级,我需要编写一个Bash脚本,该脚本将获取输出ispell,当我尝试在while循环内请求用户输入时,它仅将文件的下一行保存为用户输入。 我该如何在while循环中请求用户输入? #!/bin/bash #Returns the misspelled words #ispell -l < file #define vars ISPELL_OUTPUT_FILE="output.tmp"; INPUT_FILE=$1 ispell -l < $INPUT_FILE > $ISPELL_OUTPUT_FILE; #echo a new line for give space between command #and the output generated echo ""; while read line; do echo "'$line' is misspelled. Press "Enter" to keep"; read -p …

1
输出重定向和空格
我对此感到偏执,但希望这是一个简单的问题: 之间有什么区别 cat file1 | egrep -oP "[Mm]y string" > /home/user/file.txt 和 cat file1|egrep -oP "[Mm]y string">/home/user/file.txt 即,是否有空格填充竖线(|)和重定向(>)字符有关系吗?我真的很偏执,如果我不想要空格,空格会以某种方式最终出现在输出文件中。谁能澄清?(如果重要,请使用Ubuntu 12 / bash。)


2
并行化for循环
我想并行化for以下代码的循环。这个怎么做? #!/bin/bash N=$1 n=$2 for (( i=1; i<=$N; i++ )); do min=100000000000000 //set min to some garbage value for (( j=1; j<=$n; j++ )); do val=$(/path/to/a.out) val2=`echo $val | bc` if (( $val2 < $min )); then min=$val2; fi done arr=("${arr[@]}" "$min") done


3
Mass .flac-> .mp3转码:如何编写可保留ID3标签信息的shell脚本?
最近几周,我已经从一种相当“动手”的方法开始对.flac-> .mp3进行转码,而不再是一种“设置后忘记”的方法。 第一步是停止使用GUI前端(带有LAME插件的Audacity),而是使用我在此处概述的方法。 第二步是找到一个bash shell脚本,该脚本将告诉该命令循环递归地工作,从而允许在一个简单的步骤中对包含许多包含.flac文件的子目录的目录进行转码。该答案由askubuntu.com上的用户提供。 现在,我想学习如何进一步优化,以保留ID3标签信息。链接到上述带ID3标签数据的方法,仅保留最低限度(即仅保留标题字段)。 谁能教我如何编写这样的shell脚本? Shell脚本已更新,因此: #!/bin/bash file="$1" flac -cd "$file" | lame --preset fast extreme - "${file%.flac}.mp3" id3cp "$file" "${file%.flac}.mp3" 这样find . -name '*.flac' -exec ~/bin/flac2mp3 '{}' \;在〜/桌面/堆栈提供了以下的输出: 01 - Amon Tobin - Chomp Samba.flac: done LAME 3.98.4 64bits (http://www.mp3dev.org/) Using polyphase lowpass filter, transition band: 19383 …

6
比较目录1中而不是目录2中的文件?
我要制作的bash脚本遇到问题 我知道ls将列出目录中的文件,但是我希望它列出目录1中但不在目录2中的目录,然后列出目录2中不在目录1中的文件。 我做了一次微弱的尝试: ls -al | diff directory1 directory2 很快我意识到了为什么它不起作用。谁能帮个全力以赴的书呆子?
9 bash  shell-script  ls  diff 

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.